home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / mpega_libmad / mad / huffman.c < prev    next >
C/C++ Source or Header  |  2004-08-03  |  73KB  |  3,110 lines

  1. /*
  2.  * libmad - MPEG audio decoder library
  3.  * Copyright (C) 2000-2004 Underbit Technologies, Inc.
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or
  8.  * (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  *
  19.  * $Id: huffman.c,v 1.10 2004/01/23 09:41:32 rob Exp $
  20.  */
  21.  
  22. # ifdef HAVE_CONFIG_H
  23. #  include "config.h"
  24. # endif
  25.  
  26. # include "global.h"
  27.  
  28. # include "huffman.h"
  29.  
  30. /*
  31.  * These are the Huffman code words for Layer III.
  32.  * The data for these tables are derived from Table B.7 of ISO/IEC 11172-3.
  33.  *
  34.  * These tables support decoding up to 4 Huffman code bits at a time.
  35.  */
  36.  
  37. # if defined(__GNUC__) ||  \
  38.     (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
  39. #  define PTR(offs, bits)    { .ptr   = { 0, bits, offs       } }
  40. #  define V(v, w, x, y, hlen)    { .value = { 1, hlen, v, w, x, y } }
  41. # else
  42. #  define PTR(offs, bits)    { { 0, bits, offs } }
  43. #  if defined(WORDS_BIGENDIAN)
  44. #   define V(v, w, x, y, hlen)    { { 1, hlen, (v << 11) | (w << 10) |  \
  45.                                              (x <<  9) | (y <<  8) } }
  46. #  else
  47. #   define V(v, w, x, y, hlen)    { { 1, hlen, (v <<  0) | (w <<  1) |  \
  48.                                              (x <<  2) | (y <<  3) } }
  49. #  endif
  50. # endif
  51.  
  52. static
  53. union huffquad const hufftabA[] = {
  54.   /* 0000 */ PTR(16, 2),
  55.   /* 0001 */ PTR(20, 2),
  56.   /* 0010 */ PTR(24, 1),
  57.   /* 0011 */ PTR(26, 1),
  58.   /* 0100 */ V(0, 0, 1, 0, 4),
  59.   /* 0101 */ V(0, 0, 0, 1, 4),
  60.   /* 0110 */ V(0, 1, 0, 0, 4),
  61.   /* 0111 */ V(1, 0, 0, 0, 4),
  62.   /* 1000 */ V(0, 0, 0, 0, 1),
  63.   /* 1001 */ V(0, 0, 0, 0, 1),
  64.   /* 1010 */ V(0, 0, 0, 0, 1),
  65.   /* 1011 */ V(0, 0, 0, 0, 1),
  66.   /* 1100 */ V(0, 0, 0, 0, 1),
  67.   /* 1101 */ V(0, 0, 0, 0, 1),
  68.   /* 1110 */ V(0, 0, 0, 0, 1),
  69.   /* 1111 */ V(0, 0, 0, 0, 1),
  70.  
  71.   /* 0000 ... */
  72.   /* 00   */ V(1, 0, 1, 1, 2),    /* 16 */
  73.   /* 01   */ V(1, 1, 1, 1, 2),
  74.   /* 10   */ V(1, 1, 0, 1, 2),
  75.   /* 11   */ V(1, 1, 1, 0, 2),
  76.  
  77.   /* 0001 ... */
  78.   /* 00   */ V(0, 1, 1, 1, 2),    /* 20 */
  79.   /* 01   */ V(0, 1, 0, 1, 2),
  80.   /* 10   */ V(1, 0, 0, 1, 1),
  81.   /* 11   */ V(1, 0, 0, 1, 1),
  82.  
  83.   /* 0010 ... */
  84.   /* 0    */ V(0, 1, 1, 0, 1),    /* 24 */
  85.   /* 1    */ V(0, 0, 1, 1, 1),
  86.  
  87.   /* 0011 ... */
  88.   /* 0    */ V(1, 0, 1, 0, 1),    /* 26 */
  89.   /* 1    */ V(1, 1, 0, 0, 1)
  90. };
  91.  
  92. static
  93. union huffquad const hufftabB[] = {
  94.   /* 0000 */ V(1, 1, 1, 1, 4),
  95.   /* 0001 */ V(1, 1, 1, 0, 4),
  96.   /* 0010 */ V(1, 1, 0, 1, 4),
  97.   /* 0011 */ V(1, 1, 0, 0, 4),
  98.   /* 0100 */ V(1, 0, 1, 1, 4),
  99.   /* 0101 */ V(1, 0, 1, 0, 4),
  100.   /* 0110 */ V(1, 0, 0, 1, 4),
  101.   /* 0111 */ V(1, 0, 0, 0, 4),
  102.   /* 1000 */ V(0, 1, 1, 1, 4),
  103.   /* 1001 */ V(0, 1, 1, 0, 4),
  104.   /* 1010 */ V(0, 1, 0, 1, 4),
  105.   /* 1011 */ V(0, 1, 0, 0, 4),
  106.   /* 1100 */ V(0, 0, 1, 1, 4),
  107.   /* 1101 */ V(0, 0, 1, 0, 4),
  108.   /* 1110 */ V(0, 0, 0, 1, 4),
  109.   /* 1111 */ V(0, 0, 0, 0, 4)
  110. };
  111.  
  112. # undef V
  113. # undef PTR
  114.  
  115. # if defined(__GNUC__) ||  \
  116.     (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
  117. #  define PTR(offs, bits)    { .ptr   = { 0, bits, offs } }
  118. #  define V(x, y, hlen)        { .value = { 1, hlen, x, y } }
  119. # else
  120. #  define PTR(offs, bits)    { { 0, bits, offs } }
  121. #  if defined(WORDS_BIGENDIAN)
  122. #   define V(x, y, hlen)    { { 1, hlen, (x << 8) | (y << 4) } }
  123. #  else
  124. #   define V(x, y, hlen)    { { 1, hlen, (x << 0) | (y << 4) } }
  125. #  endif
  126. # endif
  127.  
  128. static
  129. union huffpair const hufftab0[] = {
  130.   /*      */ V(0, 0, 0)
  131. };
  132.  
  133. static
  134. union huffpair const hufftab1[] = {
  135.   /* 000  */ V(1, 1, 3),
  136.   /* 001  */ V(0, 1, 3),
  137.   /* 010  */ V(1, 0, 2),
  138.   /* 011  */ V(1, 0, 2),
  139.   /* 100  */ V(0, 0, 1),
  140.   /* 101  */ V(0, 0, 1),
  141.   /* 110  */ V(0, 0, 1),
  142.   /* 111  */ V(0, 0, 1)
  143. };
  144.  
  145. static
  146. union huffpair const hufftab2[] = {
  147.   /* 000  */ PTR(8, 3),
  148.   /* 001  */ V(1, 1, 3),
  149.   /* 010  */ V(0, 1, 3),
  150.   /* 011  */ V(1, 0, 3),
  151.   /* 100  */ V(0, 0, 1),
  152.   /* 101  */ V(0, 0, 1),
  153.   /* 110  */ V(0, 0, 1),
  154.   /* 111  */ V(0, 0, 1),
  155.  
  156.   /* 000 ... */
  157.   /* 000  */ V(2, 2, 3),    /* 8 */
  158.   /* 001  */ V(0, 2, 3),
  159.   /* 010  */ V(1, 2, 2),
  160.   /* 011  */ V(1, 2, 2),
  161.   /* 100  */ V(2, 1, 2),
  162.   /* 101  */ V(2, 1, 2),
  163.   /* 110  */ V(2, 0, 2),
  164.   /* 111  */ V(2, 0, 2)
  165. };
  166.  
  167. static
  168. union huffpair const hufftab3[] = {
  169.   /* 000  */ PTR(8, 3),
  170.   /* 001  */ V(1, 0, 3),
  171.   /* 010  */ V(1, 1, 2),
  172.   /* 011  */ V(1, 1, 2),
  173.   /* 100  */ V(0, 1, 2),
  174.   /* 101  */ V(0, 1, 2),
  175.   /* 110  */ V(0, 0, 2),
  176.   /* 111  */ V(0, 0, 2),
  177.  
  178.   /* 000 ... */
  179.   /* 000  */ V(2, 2, 3),    /* 8 */
  180.   /* 001  */ V(0, 2, 3),
  181.   /* 010  */ V(1, 2, 2),
  182.   /* 011  */ V(1, 2, 2),
  183.   /* 100  */ V(2, 1, 2),
  184.   /* 101  */ V(2, 1, 2),
  185.   /* 110  */ V(2, 0, 2),
  186.   /* 111  */ V(2, 0, 2)
  187. };
  188.  
  189. static
  190. union huffpair const hufftab5[] = {
  191.   /* 000  */ PTR(8, 4),
  192.   /* 001  */ V(1, 1, 3),
  193.   /* 010  */ V(0, 1, 3),
  194.   /* 011  */ V(1, 0, 3),
  195.   /* 100  */ V(0, 0, 1),
  196.   /* 101  */ V(0, 0, 1),
  197.   /* 110  */ V(0, 0, 1),
  198.   /* 111  */ V(0, 0, 1),
  199.  
  200.   /* 000 ... */
  201.   /* 0000 */ PTR(24, 1),    /* 8 */
  202.   /* 0001 */ V(3, 2, 4),
  203.   /* 0010 */ V(3, 1, 3),
  204.   /* 0011 */ V(3, 1, 3),
  205.   /* 0100 */ V(1, 3, 4),
  206.   /* 0101 */ V(0, 3, 4),
  207.   /* 0110 */ V(3, 0, 4),
  208.   /* 0111 */ V(2, 2, 4),
  209.   /* 1000 */ V(1, 2, 3),
  210.   /* 1001 */ V(1, 2, 3),
  211.   /* 1010 */ V(2, 1, 3),
  212.   /* 1011 */ V(2, 1, 3),
  213.   /* 1100 */ V(0, 2, 3),
  214.   /* 1101 */ V(0, 2, 3),
  215.   /* 1110 */ V(2, 0, 3),
  216.   /* 1111 */ V(2, 0, 3),
  217.  
  218.   /* 000 0000 ... */
  219.   /* 0    */ V(3, 3, 1),    /* 24 */
  220.   /* 1    */ V(2, 3, 1)
  221. };
  222.  
  223. static
  224. union huffpair const hufftab6[] = {
  225.   /* 0000 */ PTR(16, 3),
  226.   /* 0001 */ PTR(24, 1),
  227.   /* 0010 */ PTR(26, 1),
  228.   /* 0011 */ V(1, 2, 4),
  229.   /* 0100 */ V(2, 1, 4),
  230.   /* 0101 */ V(2, 0, 4),
  231.   /* 0110 */ V(0, 1, 3),
  232.   /* 0111 */ V(0, 1, 3),
  233.   /* 1000 */ V(1, 1, 2),
  234.   /* 1001 */ V(1, 1, 2),
  235.   /* 1010 */ V(1, 1, 2),
  236.   /* 1011 */ V(1, 1, 2),
  237.   /* 1100 */ V(1, 0, 3),
  238.   /* 1101 */ V(1, 0, 3),
  239.   /* 1110 */ V(0, 0, 3),
  240.   /* 1111 */ V(0, 0, 3),
  241.  
  242.   /* 0000 ... */
  243.   /* 000  */ V(3, 3, 3),    /* 16 */
  244.   /* 001  */ V(0, 3, 3),
  245.   /* 010  */ V(2, 3, 2),
  246.   /* 011  */ V(2, 3, 2),
  247.   /* 100  */ V(3, 2, 2),
  248.   /* 101  */ V(3, 2, 2),
  249.   /* 110  */ V(3, 0, 2),
  250.   /* 111  */ V(3, 0, 2),
  251.  
  252.   /* 0001 ... */
  253.   /* 0    */ V(1, 3, 1),    /* 24 */
  254.   /* 1    */ V(3, 1, 1),
  255.  
  256.   /* 0010 ... */
  257.   /* 0    */ V(2, 2, 1),    /* 26 */
  258.   /* 1    */ V(0, 2, 1)
  259. };
  260.  
  261. static
  262. union huffpair const hufftab7[] = {
  263.   /* 0000 */ PTR(16, 4),
  264.   /* 0001 */ PTR(32, 4),
  265.   /* 0010 */ PTR(48, 2),
  266.   /* 0011 */ V(1, 1, 4),
  267.   /* 0100 */ V(0, 1, 3),
  268.   /* 0101 */ V(0, 1, 3),
  269.   /* 0110 */ V(1, 0, 3),
  270.   /* 0111 */ V(1, 0, 3),
  271.   /* 1000 */ V(0, 0, 1),
  272.   /* 1001 */ V(0, 0, 1),
  273.   /* 1010 */ V(0, 0, 1),
  274.   /* 1011 */ V(0, 0, 1),
  275.   /* 1100 */ V(0, 0, 1),
  276.   /* 1101 */ V(0, 0, 1),
  277.   /* 1110 */ V(0, 0, 1),
  278.   /* 1111 */ V(0, 0, 1),
  279.  
  280.   /* 0000 ... */
  281.   /* 0000 */ PTR(52, 2),    /* 16 */
  282.   /* 0001 */ PTR(56, 1),
  283.   /* 0010 */ PTR(58, 1),
  284.   /* 0011 */ V(1, 5, 4),
  285.   /* 0100 */ V(5, 1, 4),
  286.   /* 0101 */ PTR(60, 1),
  287.   /* 0110 */ V(5, 0, 4),
  288.   /* 0111 */ PTR(62, 1),
  289.   /* 1000 */ V(2, 4, 4),
  290.   /* 1001 */ V(4, 2, 4),
  291.   /* 1010 */ V(1, 4, 3),
  292.   /* 1011 */ V(1, 4, 3),
  293.   /* 1100 */ V(4, 1, 3),
  294.   /* 1101 */ V(4, 1, 3),
  295.   /* 1110 */ V(4, 0, 3),
  296.   /* 1111 */ V(4, 0, 3),
  297.  
  298.   /* 0001 ... */
  299.   /* 0000 */ V(0, 4, 4),    /* 32 */
  300.   /* 0001 */ V(2, 3, 4),
  301.   /* 0010 */ V(3, 2, 4),
  302.   /* 0011 */ V(0, 3, 4),
  303.   /* 0100 */ V(1, 3, 3),
  304.   /* 0101 */ V(1, 3, 3),
  305.   /* 0110 */ V(3, 1, 3),
  306.   /* 0111 */ V(3, 1, 3),
  307.   /* 1000 */ V(3, 0, 3),
  308.   /* 1001 */ V(3, 0, 3),
  309.   /* 1010 */ V(2, 2, 3),
  310.   /* 1011 */ V(2, 2, 3),
  311.   /* 1100 */ V(1, 2, 2),
  312.   /* 1101 */ V(1, 2, 2),
  313.   /* 1110 */ V(1, 2, 2),
  314.   /* 1111 */ V(1, 2, 2),
  315.  
  316.   /* 0010 ... */
  317.   /* 00   */ V(2, 1, 1),    /* 48 */
  318.   /* 01   */ V(2, 1, 1),
  319.   /* 10   */ V(0, 2, 2),
  320.   /* 11   */ V(2, 0, 2),
  321.  
  322.   /* 0000 0000 ... */
  323.   /* 00   */ V(5, 5, 2),    /* 52 */
  324.   /* 01   */ V(4, 5, 2),
  325.   /* 10   */ V(5, 4, 2),
  326.   /* 11   */ V(5, 3, 2),
  327.  
  328.   /* 0000 0001 ... */
  329.   /* 0    */ V(3, 5, 1),    /* 56 */
  330.   /* 1    */ V(4, 4, 1),
  331.  
  332.   /* 0000 0010 ... */
  333.   /* 0    */ V(2, 5, 1),    /* 58 */
  334.   /* 1    */ V(5, 2, 1),
  335.  
  336.   /* 0000 0101 ... */
  337.   /* 0    */ V(0, 5, 1),    /* 60 */
  338.   /* 1    */ V(3, 4, 1),
  339.  
  340.   /* 0000 0111 ... */
  341.   /* 0    */ V(4, 3, 1),    /* 62 */
  342.   /* 1    */ V(3, 3, 1)
  343. };
  344.  
  345. # if 0
  346. /* this version saves 8 entries (16 bytes) at the expense of
  347.    an extra lookup in 4 out of 36 cases */
  348. static
  349. union huffpair const hufftab8[] = {
  350.   /* 0000 */ PTR(16, 4),
  351.   /* 0001 */ PTR(32, 2),
  352.   /* 0010 */ V(1, 2, 4),
  353.   /* 0011 */ V(2, 1, 4),
  354.   /* 0100 */ V(1, 1, 2),
  355.   /* 0101 */ V(1, 1, 2),
  356.   /* 0110 */ V(1, 1, 2),
  357.   /* 0111 */ V(1, 1, 2),
  358.   /* 1000 */ V(0, 1, 3),
  359.   /* 1001 */ V(0, 1, 3),
  360.   /* 1010 */ V(1, 0, 3),
  361.   /* 1011 */ V(1, 0, 3),
  362.   /* 1100 */ V(0, 0, 2),
  363.   /* 1101 */ V(0, 0, 2),
  364.   /* 1110 */ V(0, 0, 2),
  365.   /* 1111 */ V(0, 0, 2),
  366.  
  367.   /* 0000 ... */
  368.   /* 0000 */ PTR(36, 3),    /* 16 */
  369.   /* 0001 */ PTR(44, 2),
  370.   /* 0010 */ PTR(48, 1),
  371.   /* 0011 */ V(1, 5, 4),
  372.   /* 0100 */ V(5, 1, 4),
  373.   /* 0101 */ PTR(50, 1),
  374.   /* 0110 */ PTR(52, 1),
  375.   /* 0111 */ V(2, 4, 4),
  376.   /* 1000 */ V(4, 2, 4),
  377.   /* 1001 */ V(1, 4, 4),
  378.   /* 1010 */ V(4, 1, 3),
  379.   /* 1011 */ V(4, 1, 3),
  380.   /* 1100 */ V(0, 4, 4),
  381.   /* 1101 */ V(4, 0, 4),
  382.   /* 1110 */ V(2, 3, 4),
  383.   /* 1111 */ V(3, 2, 4),
  384.  
  385.   /* 0001 ... */
  386.   /* 00   */ PTR(54, 2),    /* 32 */
  387.   /* 01   */ V(2, 2, 2),
  388.   /* 10   */ V(0, 2, 2),
  389.   /* 11   */ V(2, 0, 2),
  390.  
  391.   /* 0000 0000 ... */
  392.   /* 000  */ V(5, 5, 3),    /* 36 */
  393.   /* 001  */ V(5, 4, 3),
  394.   /* 010  */ V(4, 5, 2),
  395.   /* 011  */ V(4, 5, 2),
  396.   /* 100  */ V(5, 3, 1),
  397.   /* 101  */ V(5, 3, 1),
  398.   /* 110  */ V(5, 3, 1),
  399.   /* 111  */ V(5, 3, 1),
  400.  
  401.   /* 0000 0001 ... */
  402.   /* 00   */ V(3, 5, 2),    /* 44 */
  403.   /* 01   */ V(4, 4, 2),
  404.   /* 10   */ V(2, 5, 1),
  405.   /* 11   */ V(2, 5, 1),
  406.  
  407.   /* 0000 0010 ... */
  408.   /* 0    */ V(5, 2, 1),    /* 48 */
  409.   /* 1    */ V(0, 5, 1),
  410.  
  411.   /* 0000 0101 ... */
  412.   /* 0    */ V(3, 4, 1),    /* 50 */
  413.   /* 1    */ V(4, 3, 1),
  414.  
  415.   /* 0000 0110 ... */
  416.   /* 0    */ V(5, 0, 1),    /* 52 */
  417.   /* 1    */ V(3, 3, 1),
  418.  
  419.   /* 0001 00 ... */
  420.   /* 00   */ V(1, 3, 2),    /* 54 */
  421.   /* 01   */ V(3, 1, 2),
  422.   /* 10   */ V(0, 3, 2),
  423.   /* 11   */ V(3, 0, 2),
  424. };
  425. # else
  426. static
  427. union huffpair const hufftab8[] = {
  428.   /* 0000 */ PTR(16, 4),
  429.   /* 0001 */ PTR(32, 4),
  430.   /* 0010 */ V(1, 2, 4),
  431.   /* 0011 */ V(2, 1, 4),
  432.   /* 0100 */ V(1, 1, 2),
  433.   /* 0101 */ V(1, 1, 2),
  434.   /* 0110 */ V(1, 1, 2),
  435.   /* 0111 */ V(1, 1, 2),
  436.   /* 1000 */ V(0, 1, 3),
  437.   /* 1001 */ V(0, 1, 3),
  438.   /* 1010 */ V(1, 0, 3),
  439.   /* 1011 */ V(1, 0, 3),
  440.   /* 1100 */ V(0, 0, 2),
  441.   /* 1101 */ V(0, 0, 2),
  442.   /* 1110 */ V(0, 0, 2),
  443.   /* 1111 */ V(0, 0, 2),
  444.  
  445.   /* 0000 ... */
  446.   /* 0000 */ PTR(48, 3),    /* 16 */
  447.   /* 0001 */ PTR(56, 2),
  448.   /* 0010 */ PTR(60, 1),
  449.   /* 0011 */ V(1, 5, 4),
  450.   /* 0100 */ V(5, 1, 4),
  451.   /* 0101 */ PTR(62, 1),
  452.   /* 0110 */ PTR(64, 1),
  453.   /* 0111 */ V(2, 4, 4),
  454.   /* 1000 */ V(4, 2, 4),
  455.   /* 1001 */ V(1, 4, 4),
  456.   /* 1010 */ V(4, 1, 3),
  457.   /* 1011 */ V(4, 1, 3),
  458.   /* 1100 */ V(0, 4, 4),
  459.   /* 1101 */ V(4, 0, 4),
  460.   /* 1110 */ V(2, 3, 4),
  461.   /* 1111 */ V(3, 2, 4),
  462.  
  463.   /* 0001 ... */
  464.   /* 0000 */ V(1, 3, 4),    /* 32 */
  465.   /* 0001 */ V(3, 1, 4),
  466.   /* 0010 */ V(0, 3, 4),
  467.   /* 0011 */ V(3, 0, 4),
  468.   /* 0100 */ V(2, 2, 2),
  469.   /* 0101 */ V(2, 2, 2),
  470.   /* 0110 */ V(2, 2, 2),
  471.   /* 0111 */ V(2, 2, 2),
  472.   /* 1000 */ V(0, 2, 2),
  473.   /* 1001 */ V(0, 2, 2),
  474.   /* 1010 */ V(0, 2, 2),
  475.   /* 1011 */ V(0, 2, 2),
  476.   /* 1100 */ V(2, 0, 2),
  477.   /* 1101 */ V(2, 0, 2),
  478.   /* 1110 */ V(2, 0, 2),
  479.   /* 1111 */ V(2, 0, 2),
  480.  
  481.   /* 0000 0000 ... */
  482.   /* 000  */ V(5, 5, 3),    /* 48 */
  483.   /* 001  */ V(5, 4, 3),
  484.   /* 010  */ V(4, 5, 2),
  485.   /* 011  */ V(4, 5, 2),
  486.   /* 100  */ V(5, 3, 1),
  487.   /* 101  */ V(5, 3, 1),
  488.   /* 110  */ V(5, 3, 1),
  489.   /* 111  */ V(5, 3, 1),
  490.  
  491.   /* 0000 0001 ... */
  492.   /* 00   */ V(3, 5, 2),    /* 56 */
  493.   /* 01   */ V(4, 4, 2),
  494.   /* 10   */ V(2, 5, 1),
  495.   /* 11   */ V(2, 5, 1),
  496.  
  497.   /* 0000 0010 ... */
  498.   /* 0    */ V(5, 2, 1),    /* 60 */
  499.   /* 1    */ V(0, 5, 1),
  500.  
  501.   /* 0000 0101 ... */
  502.   /* 0    */ V(3, 4, 1),    /* 62 */
  503.   /* 1    */ V(4, 3, 1),
  504.  
  505.   /* 0000 0110 ... */
  506.   /* 0    */ V(5, 0, 1),    /* 64 */
  507.   /* 1    */ V(3, 3, 1)
  508. };
  509. # endif
  510.  
  511. static
  512. union huffpair const hufftab9[] = {
  513.   /* 0000 */ PTR(16, 4),
  514.   /* 0001 */ PTR(32, 3),
  515.   /* 0010 */ PTR(40, 2),
  516.   /* 0011 */ PTR(44, 2),
  517.   /* 0100 */ PTR(48, 1),
  518.   /* 0101 */ V(1, 2, 4),
  519.   /* 0110 */ V(2, 1, 4),
  520.   /* 0111 */ V(2, 0, 4),
  521.   /* 1000 */ V(1, 1, 3),
  522.   /* 1001 */ V(1, 1, 3),
  523.   /* 1010 */ V(0, 1, 3),
  524.   /* 1011 */ V(0, 1, 3),
  525.   /* 1100 */ V(1, 0, 3),
  526.   /* 1101 */ V(1, 0, 3),
  527.   /* 1110 */ V(0, 0, 3),
  528.   /* 1111 */ V(0, 0, 3),
  529.  
  530.   /* 0000 ... */
  531.   /* 0000 */ PTR(50, 1),    /* 16 */
  532.   /* 0001 */ V(3, 5, 4),
  533.   /* 0010 */ V(5, 3, 4),
  534.   /* 0011 */ PTR(52, 1),
  535.   /* 0100 */ V(4, 4, 4),
  536.   /* 0101 */ V(2, 5, 4),
  537.   /* 0110 */ V(5, 2, 4),
  538.   /* 0111 */ V(1, 5, 4),
  539.   /* 1000 */ V(5, 1, 3),
  540.   /* 1001 */ V(5, 1, 3),
  541.   /* 1010 */ V(3, 4, 3),
  542.   /* 1011 */ V(3, 4, 3),
  543.   /* 1100 */ V(4, 3, 3),
  544.   /* 1101 */ V(4, 3, 3),
  545.   /* 1110 */ V(5, 0, 4),
  546.   /* 1111 */ V(0, 4, 4),
  547.  
  548.   /* 0001 ... */
  549.   /* 000  */ V(2, 4, 3),    /* 32 */
  550.   /* 001  */ V(4, 2, 3),
  551.   /* 010  */ V(3, 3, 3),
  552.   /* 011  */ V(4, 0, 3),
  553.   /* 100  */ V(1, 4, 2),
  554.   /* 101  */ V(1, 4, 2),
  555.   /* 110  */ V(4, 1, 2),
  556.   /* 111  */ V(4, 1, 2),
  557.  
  558.   /* 0010 ... */
  559.   /* 00   */ V(2, 3, 2),    /* 40 */
  560.   /* 01   */ V(3, 2, 2),
  561.   /* 10   */ V(1, 3, 1),
  562.   /* 11   */ V(1, 3, 1),
  563.  
  564.   /* 0011 ... */
  565.   /* 00   */ V(3, 1, 1),    /* 44 */
  566.   /* 01   */ V(3, 1, 1),
  567.   /* 10   */ V(0, 3, 2),
  568.   /* 11   */ V(3, 0, 2),
  569.  
  570.   /* 0100 ... */
  571.   /* 0    */ V(2, 2, 1),    /* 48 */
  572.   /* 1    */ V(0, 2, 1),
  573.  
  574.   /* 0000 0000 ... */
  575.   /* 0    */ V(5, 5, 1),    /* 50 */
  576.   /* 1    */ V(4, 5, 1),
  577.  
  578.   /* 0000 0011 ... */
  579.   /* 0    */ V(5, 4, 1),    /* 52 */
  580.   /* 1    */ V(0, 5, 1)
  581. };
  582.  
  583. static
  584. union huffpair const hufftab10[] = {
  585.   /* 0000 */ PTR(16, 4),
  586.   /* 0001 */ PTR(32, 4),
  587.   /* 0010 */ PTR(48, 2),
  588.   /* 0011 */ V(1, 1, 4),
  589.   /* 0100 */ V(0, 1, 3),
  590.   /* 0101 */ V(0, 1, 3),
  591.   /* 0110 */ V(1, 0, 3),
  592.   /* 0111 */ V(1, 0, 3),
  593.   /* 1000 */ V(0, 0, 1),
  594.   /* 1001 */ V(0, 0, 1),
  595.   /* 1010 */ V(0, 0, 1),
  596.   /* 1011 */ V(0, 0, 1),
  597.   /* 1100 */ V(0, 0, 1),
  598.   /* 1101 */ V(0, 0, 1),
  599.   /* 1110 */ V(0, 0, 1),
  600.   /* 1111 */ V(0, 0, 1),
  601.  
  602.   /* 0000 ... */
  603.   /* 0000 */ PTR(52, 3),    /* 16 */
  604.   /* 0001 */ PTR(60, 2),
  605.   /* 0010 */ PTR(64, 3),
  606.   /* 0011 */ PTR(72, 1),
  607.   /* 0100 */ PTR(74, 2),
  608.   /* 0101 */ PTR(78, 2),
  609.   /* 0110 */ PTR(82, 2),
  610.   /* 0111 */ V(1, 7, 4),
  611.   /* 1000 */ V(7, 1, 4),
  612.   /* 1001 */ PTR(86, 1),
  613.   /* 1010 */ PTR(88, 2),
  614.   /* 1011 */ PTR(92, 2),
  615.   /* 1100 */ V(1, 6, 4),
  616.   /* 1101 */ V(6, 1, 4),
  617.   /* 1110 */ V(6, 0, 4),
  618.   /* 1111 */ PTR(96, 1),
  619.  
  620.   /* 0001 ... */
  621.   /* 0000 */ PTR(98, 1),    /* 32 */
  622.   /* 0001 */ PTR(100, 1),
  623.   /* 0010 */ V(1, 4, 4),
  624.   /* 0011 */ V(4, 1, 4),
  625.   /* 0100 */ V(4, 0, 4),
  626.   /* 0101 */ V(2, 3, 4),
  627.   /* 0110 */ V(3, 2, 4),
  628.   /* 0111 */ V(0, 3, 4),
  629.   /* 1000 */ V(1, 3, 3),
  630.   /* 1001 */ V(1, 3, 3),
  631.   /* 1010 */ V(3, 1, 3),
  632.   /* 1011 */ V(3, 1, 3),
  633.   /* 1100 */ V(3, 0, 3),
  634.   /* 1101 */ V(3, 0, 3),
  635.   /* 1110 */ V(2, 2, 3),
  636.   /* 1111 */ V(2, 2, 3),
  637.  
  638.   /* 0010 ... */
  639.   /* 00   */ V(1, 2, 2),    /* 48 */
  640.   /* 01   */ V(2, 1, 2),
  641.   /* 10   */ V(0, 2, 2),
  642.   /* 11   */ V(2, 0, 2),
  643.  
  644.   /* 0000 0000 ... */
  645.   /* 000  */ V(7, 7, 3),    /* 52 */
  646.   /* 001  */ V(6, 7, 3),
  647.   /* 010  */ V(7, 6, 3),
  648.   /* 011  */ V(5, 7, 3),
  649.   /* 100  */ V(7, 5, 3),
  650.   /* 101  */ V(6, 6, 3),
  651.   /* 110  */ V(4, 7, 2),
  652.   /* 111  */ V(4, 7, 2),
  653.  
  654.   /* 0000 0001 ... */
  655.   /* 00   */ V(7, 4, 2),    /* 60 */
  656.   /* 01   */ V(5, 6, 2),
  657.   /* 10   */ V(6, 5, 2),
  658.   /* 11   */ V(3, 7, 2),
  659.  
  660.   /* 0000 0010 ... */
  661.   /* 000  */ V(7, 3, 2),    /* 64 */
  662.   /* 001  */ V(7, 3, 2),
  663.   /* 010  */ V(4, 6, 2),
  664.   /* 011  */ V(4, 6, 2),
  665.   /* 100  */ V(5, 5, 3),
  666.   /* 101  */ V(5, 4, 3),
  667.   /* 110  */ V(6, 3, 2),
  668.   /* 111  */ V(6, 3, 2),
  669.  
  670.   /* 0000 0011 ... */
  671.   /* 0    */ V(2, 7, 1),    /* 72 */
  672.   /* 1    */ V(7, 2, 1),
  673.  
  674.   /* 0000 0100 ... */
  675.   /* 00   */ V(6, 4, 2),    /* 74 */
  676.   /* 01   */ V(0, 7, 2),
  677.   /* 10   */ V(7, 0, 1),
  678.   /* 11   */ V(7, 0, 1),
  679.  
  680.   /* 0000 0101 ... */
  681.   /* 00   */ V(6, 2, 1),    /* 78 */
  682.   /* 01   */ V(6, 2, 1),
  683.   /* 10   */ V(4, 5, 2),
  684.   /* 11   */ V(3, 5, 2),
  685.  
  686.   /* 0000 0110 ... */
  687.   /* 00   */ V(0, 6, 1),    /* 82 */
  688.   /* 01   */ V(0, 6, 1),
  689.   /* 10   */ V(5, 3, 2),
  690.   /* 11   */ V(4, 4, 2),
  691.  
  692.   /* 0000 1001 ... */
  693.   /* 0    */ V(3, 6, 1),    /* 86 */
  694.   /* 1    */ V(2, 6, 1),
  695.  
  696.   /* 0000 1010 ... */
  697.   /* 00   */ V(2, 5, 2),    /* 88 */
  698.   /* 01   */ V(5, 2, 2),
  699.   /* 10   */ V(1, 5, 1),
  700.   /* 11   */ V(1, 5, 1),
  701.  
  702.   /* 0000 1011 ... */
  703.   /* 00   */ V(5, 1, 1),    /* 92 */
  704.   /* 01   */ V(5, 1, 1),
  705.   /* 10   */ V(3, 4, 2),
  706.   /* 11   */ V(4, 3, 2),
  707.  
  708.   /* 0000 1111 ... */
  709.   /* 0    */ V(0, 5, 1),    /* 96 */
  710.   /* 1    */ V(5, 0, 1),
  711.  
  712.   /* 0001 0000 ... */
  713.   /* 0    */ V(2, 4, 1),    /* 98 */
  714.   /* 1    */ V(4, 2, 1),
  715.  
  716.   /* 0001 0001 ... */
  717.   /* 0    */ V(3, 3, 1),    /* 100 */
  718.   /* 1    */ V(0, 4, 1)
  719. };
  720.  
  721. static
  722. union huffpair const hufftab11[] = {
  723.   /* 0000 */ PTR(16, 4),
  724.   /* 0001 */ PTR(32, 4),
  725.   /* 0010 */ PTR(48, 4),
  726.   /* 0011 */ PTR(64, 3),
  727.   /* 0100 */ V(1, 2, 4),
  728.   /* 0101 */ PTR(72, 1),
  729.   /* 0110 */ V(1, 1, 3),
  730.   /* 0111 */ V(1, 1, 3),
  731.   /* 1000 */ V(0, 1, 3),
  732.   /* 1001 */ V(0, 1, 3),
  733.   /* 1010 */ V(1, 0, 3),
  734.   /* 1011 */ V(1, 0, 3),
  735.   /* 1100 */ V(0, 0, 2),
  736.   /* 1101 */ V(0, 0, 2),
  737.   /* 1110 */ V(0, 0, 2),
  738.   /* 1111 */ V(0, 0, 2),
  739.  
  740.   /* 0000 ... */
  741.   /* 0000 */ PTR(74, 2),    /* 16 */
  742.   /* 0001 */ PTR(78, 3),
  743.   /* 0010 */ PTR(86, 2),
  744.   /* 0011 */ PTR(90, 1),
  745.   /* 0100 */ PTR(92, 2),
  746.   /* 0101 */ V(2, 7, 4),
  747.   /* 0110 */ V(7, 2, 4),
  748.   /* 0111 */ PTR(96, 1),
  749.   /* 1000 */ V(7, 1, 3),
  750.   /* 1001 */ V(7, 1, 3),
  751.   /* 1010 */ V(1, 7, 4),
  752.   /* 1011 */ V(7, 0, 4),
  753.   /* 1100 */ V(3, 6, 4),
  754.   /* 1101 */ V(6, 3, 4),
  755.   /* 1110 */ V(6, 0, 4),
  756.   /* 1111 */ PTR(98, 1),
  757.  
  758.   /* 0001 ... */
  759.   /* 0000 */ PTR(100, 1),    /* 32 */
  760.   /* 0001 */ V(1, 5, 4),
  761.   /* 0010 */ V(6, 2, 3),
  762.   /* 0011 */ V(6, 2, 3),
  763.   /* 0100 */ V(2, 6, 4),
  764.   /* 0101 */ V(0, 6, 4),
  765.   /* 0110 */ V(1, 6, 3),
  766.   /* 0111 */ V(1, 6, 3),
  767.   /* 1000 */ V(6, 1, 3),
  768.   /* 1001 */ V(6, 1, 3),
  769.   /* 1010 */ V(5, 1, 4),
  770.   /* 1011 */ V(3, 4, 4),
  771.   /* 1100 */ V(5, 0, 4),
  772.   /* 1101 */ PTR(102, 1),
  773.   /* 1110 */ V(2, 4, 4),
  774.   /* 1111 */ V(4, 2, 4),
  775.  
  776.   /* 0010 ... */
  777.   /* 0000 */ V(1, 4, 4),    /* 48 */
  778.   /* 0001 */ V(4, 1, 4),
  779.   /* 0010 */ V(0, 4, 4),
  780.   /* 0011 */ V(4, 0, 4),
  781.   /* 0100 */ V(2, 3, 3),
  782.   /* 0101 */ V(2, 3, 3),
  783.   /* 0110 */ V(3, 2, 3),
  784.   /* 0111 */ V(3, 2, 3),
  785.   /* 1000 */ V(1, 3, 2),
  786.   /* 1001 */ V(1, 3, 2),
  787.   /* 1010 */ V(1, 3, 2),
  788.   /* 1011 */ V(1, 3, 2),
  789.   /* 1100 */ V(3, 1, 2),
  790.   /* 1101 */ V(3, 1, 2),
  791.   /* 1110 */ V(3, 1, 2),
  792.   /* 1111 */ V(3, 1, 2),
  793.  
  794.   /* 0011 ... */
  795.   /* 000  */ V(0, 3, 3),    /* 64 */
  796.   /* 001  */ V(3, 0, 3),
  797.   /* 010  */ V(2, 2, 2),
  798.   /* 011  */ V(2, 2, 2),
  799.   /* 100  */ V(2, 1, 1),
  800.   /* 101  */ V(2, 1, 1),
  801.   /* 110  */ V(2, 1, 1),
  802.   /* 111  */ V(2, 1, 1),
  803.  
  804.   /* 0101 ... */
  805.   /* 0    */ V(0, 2, 1),    /* 72 */
  806.   /* 1    */ V(2, 0, 1),
  807.  
  808.   /* 0000 0000 ... */
  809.   /* 00   */ V(7, 7, 2),    /* 74 */
  810.   /* 01   */ V(6, 7, 2),
  811.   /* 10   */ V(7, 6, 2),
  812.   /* 11   */ V(7, 5, 2),
  813.  
  814.   /* 0000 0001 ... */
  815.   /* 000  */ V(6, 6, 2),    /* 78 */
  816.   /* 001  */ V(6, 6, 2),
  817.   /* 010  */ V(4, 7, 2),
  818.   /* 011  */ V(4, 7, 2),
  819.   /* 100  */ V(7, 4, 2),
  820.   /* 101  */ V(7, 4, 2),
  821.   /* 110  */ V(5, 7, 3),
  822.   /* 111  */ V(5, 5, 3),
  823.  
  824.   /* 0000 0010 ... */
  825.   /* 00   */ V(5, 6, 2),    /* 86 */
  826.   /* 01   */ V(6, 5, 2),
  827.   /* 10   */ V(3, 7, 1),
  828.   /* 11   */ V(3, 7, 1),
  829.  
  830.   /* 0000 0011 ... */
  831.   /* 0    */ V(7, 3, 1),    /* 90 */
  832.   /* 1    */ V(4, 6, 1),
  833.  
  834.   /* 0000 0100 ... */
  835.   /* 00   */ V(4, 5, 2),    /* 92 */
  836.   /* 01   */ V(5, 4, 2),
  837.   /* 10   */ V(3, 5, 2),
  838.   /* 11   */ V(5, 3, 2),
  839.  
  840.   /* 0000 0111 ... */
  841.   /* 0    */ V(6, 4, 1),    /* 96 */
  842.   /* 1    */ V(0, 7, 1),
  843.  
  844.   /* 0000 1111 ... */
  845.   /* 0    */ V(4, 4, 1),    /* 98 */
  846.   /* 1    */ V(2, 5, 1),
  847.  
  848.   /* 0001 0000 ... */
  849.   /* 0    */ V(5, 2, 1),    /* 100 */
  850.   /* 1    */ V(0, 5, 1),
  851.  
  852.   /* 0001 1101 ... */
  853.   /* 0    */ V(4, 3, 1),    /* 102 */
  854.   /* 1    */ V(3, 3, 1)
  855. };
  856.  
  857. static
  858. union huffpair const hufftab12[] = {
  859.   /* 0000 */ PTR(16, 4),
  860.   /* 0001 */ PTR(32, 4),
  861.   /* 0010 */ PTR(48, 4),
  862.   /* 0011 */ PTR(64, 2),
  863.   /* 0100 */ PTR(68, 3),
  864.   /* 0101 */ PTR(76, 1),
  865.   /* 0110 */ V(1, 2, 4),
  866.   /* 0111 */ V(2, 1, 4),
  867.   /* 1000 */ PTR(78, 1),
  868.   /* 1001 */ V(0, 0, 4),
  869.   /* 1010 */ V(1, 1, 3),
  870.   /* 1011 */ V(1, 1, 3),
  871.   /* 1100 */ V(0, 1, 3),
  872.   /* 1101 */ V(0, 1, 3),
  873.   /* 1110 */ V(1, 0, 3),
  874.   /* 1111 */ V(1, 0, 3),
  875.  
  876.   /* 0000 ... */
  877.   /* 0000 */ PTR(80, 2),    /* 16 */
  878.   /* 0001 */ PTR(84, 1),
  879.   /* 0010 */ PTR(86, 1),
  880.   /* 0011 */ PTR(88, 1),
  881.   /* 0100 */ V(5, 6, 4),
  882.   /* 0101 */ V(3, 7, 4),
  883.   /* 0110 */ PTR(90, 1),
  884.   /* 0111 */ V(2, 7, 4),
  885.   /* 1000 */ V(7, 2, 4),
  886.   /* 1001 */ V(4, 6, 4),
  887.   /* 1010 */ V(6, 4, 4),
  888.   /* 1011 */ V(1, 7, 4),
  889.   /* 1100 */ V(7, 1, 4),
  890.   /* 1101 */ PTR(92, 1),
  891.   /* 1110 */ V(3, 6, 4),
  892.   /* 1111 */ V(6, 3, 4),
  893.  
  894.   /* 0001 ... */
  895.   /* 0000 */ V(4, 5, 4),    /* 32 */
  896.   /* 0001 */ V(5, 4, 4),
  897.   /* 0010 */ V(4, 4, 4),
  898.   /* 0011 */ PTR(94, 1),
  899.   /* 0100 */ V(2, 6, 3),
  900.   /* 0101 */ V(2, 6, 3),
  901.   /* 0110 */ V(6, 2, 3),
  902.   /* 0111 */ V(6, 2, 3),
  903.   /* 1000 */ V(6, 1, 3),
  904.   /* 1001 */ V(6, 1, 3),
  905.   /* 1010 */ V(1, 6, 4),
  906.   /* 1011 */ V(6, 0, 4),
  907.   /* 1100 */ V(3, 5, 4),
  908.   /* 1101 */ V(5, 3, 4),
  909.   /* 1110 */ V(2, 5, 4),
  910.   /* 1111 */ V(5, 2, 4),
  911.  
  912.   /* 0010 ... */
  913.   /* 0000 */ V(1, 5, 3),    /* 48 */
  914.   /* 0001 */ V(1, 5, 3),
  915.   /* 0010 */ V(5, 1, 3),
  916.   /* 0011 */ V(5, 1, 3),
  917.   /* 0100 */ V(3, 4, 3),
  918.   /* 0101 */ V(3, 4, 3),
  919.   /* 0110 */ V(4, 3, 3),
  920.   /* 0111 */ V(4, 3, 3),
  921.   /* 1000 */ V(5, 0, 4),
  922.   /* 1001 */ V(0, 4, 4),
  923.   /* 1010 */ V(2, 4, 3),
  924.   /* 1011 */ V(2, 4, 3),
  925.   /* 1100 */ V(4, 2, 3),
  926.   /* 1101 */ V(4, 2, 3),
  927.   /* 1110 */ V(1, 4, 3),
  928.   /* 1111 */ V(1, 4, 3),
  929.  
  930.   /* 0011 ... */
  931.   /* 00   */ V(3, 3, 2),    /* 64 */
  932.   /* 01   */ V(4, 1, 2),
  933.   /* 10   */ V(2, 3, 2),
  934.   /* 11   */ V(3, 2, 2),
  935.  
  936.   /* 0100 ... */
  937.   /* 000  */ V(4, 0, 3),    /* 68 */
  938.   /* 001  */ V(0, 3, 3),
  939.   /* 010  */ V(3, 0, 2),
  940.   /* 011  */ V(3, 0, 2),
  941.   /* 100  */ V(1, 3, 1),
  942.   /* 101  */ V(1, 3, 1),
  943.   /* 110  */ V(1, 3, 1),
  944.   /* 111  */ V(1, 3, 1),
  945.  
  946.   /* 0101 ... */
  947.   /* 0    */ V(3, 1, 1),    /* 76 */
  948.   /* 1    */ V(2, 2, 1),
  949.  
  950.   /* 1000 ... */
  951.   /* 0    */ V(0, 2, 1),    /* 78 */
  952.   /* 1    */ V(2, 0, 1),
  953.  
  954.   /* 0000 0000 ... */
  955.   /* 00   */ V(7, 7, 2),    /* 80 */
  956.   /* 01   */ V(6, 7, 2),
  957.   /* 10   */ V(7, 6, 1),
  958.   /* 11   */ V(7, 6, 1),
  959.  
  960.   /* 0000 0001 ... */
  961.   /* 0    */ V(5, 7, 1),    /* 84 */
  962.   /* 1    */ V(7, 5, 1),
  963.  
  964.   /* 0000 0010 ... */
  965.   /* 0    */ V(6, 6, 1),    /* 86 */
  966.   /* 1    */ V(4, 7, 1),
  967.  
  968.   /* 0000 0011 ... */
  969.   /* 0    */ V(7, 4, 1),    /* 88 */
  970.   /* 1    */ V(6, 5, 1),
  971.  
  972.   /* 0000 0110 ... */
  973.   /* 0    */ V(7, 3, 1),    /* 90 */
  974.   /* 1    */ V(5, 5, 1),
  975.  
  976.   /* 0000 1101 ... */
  977.   /* 0    */ V(0, 7, 1),    /* 92 */
  978.   /* 1    */ V(7, 0, 1),
  979.  
  980.   /* 0001 0011 ... */
  981.   /* 0    */ V(0, 6, 1),    /* 94 */
  982.   /* 1    */ V(0, 5, 1)
  983. };
  984.  
  985. static
  986. union huffpair const hufftab13[] = {
  987.   /* 0000 */ PTR(16, 4),
  988.   /* 0001 */ PTR(32, 4),
  989.   /* 0010 */ PTR(48, 4),
  990.   /* 0011 */ PTR(64, 2),
  991.   /* 0100 */ V(1, 1, 4),
  992.   /* 0101 */ V(0, 1, 4),
  993.   /* 0110 */ V(1, 0, 3),
  994.   /* 0111 */ V(1, 0, 3),
  995.   /* 1000 */ V(0, 0, 1),
  996.   /* 1001 */ V(0, 0, 1),
  997.   /* 1010 */ V(0, 0, 1),
  998.   /* 1011 */ V(0, 0, 1),
  999.   /* 1100 */ V(0, 0, 1),
  1000.   /* 1101 */ V(0, 0, 1),
  1001.   /* 1110 */ V(0, 0, 1),
  1002.   /* 1111 */ V(0, 0, 1),
  1003.  
  1004.   /* 0000 ... */
  1005.   /* 0000 */ PTR(68, 4),    /* 16 */
  1006.   /* 0001 */ PTR(84, 4),
  1007.   /* 0010 */ PTR(100, 4),
  1008.   /* 0011 */ PTR(116, 4),
  1009.   /* 0100 */ PTR(132, 4),
  1010.   /* 0101 */ PTR(148, 4),
  1011.   /* 0110 */ PTR(164, 3),
  1012.   /* 0111 */ PTR(172, 3),
  1013.   /* 1000 */ PTR(180, 3),
  1014.   /* 1001 */ PTR(188, 3),
  1015.   /* 1010 */ PTR(196, 3),
  1016.   /* 1011 */ PTR(204, 3),
  1017.   /* 1100 */ PTR(212, 1),
  1018.   /* 1101 */ PTR(214, 2),
  1019.   /* 1110 */ PTR(218, 3),
  1020.   /* 1111 */ PTR(226, 1),
  1021.  
  1022.   /* 0001 ... */
  1023.   /* 0000 */ PTR(228, 2),    /* 32 */
  1024.   /* 0001 */ PTR(232, 2),
  1025.   /* 0010 */ PTR(236, 2),
  1026.   /* 0011 */ PTR(240, 2),
  1027.   /* 0100 */ V(8, 1, 4),
  1028.   /* 0101 */ PTR(244, 1),
  1029.   /* 0110 */ PTR(246, 1),
  1030.   /* 0111 */ PTR(248, 1),
  1031.   /* 1000 */ PTR(250, 2),
  1032.   /* 1001 */ PTR(254, 1),
  1033.   /* 1010 */ V(1, 5, 4),
  1034.   /* 1011 */ V(5, 1, 4),
  1035.   /* 1100 */ PTR(256, 1),
  1036.   /* 1101 */ PTR(258, 1),
  1037.   /* 1110 */ PTR(260, 1),
  1038.   /* 1111 */ V(1, 4, 4),
  1039.  
  1040.   /* 0010 ... */
  1041.   /* 0000 */ V(4, 1, 3),    /* 48 */
  1042.   /* 0001 */ V(4, 1, 3),
  1043.   /* 0010 */ V(0, 4, 4),
  1044.   /* 0011 */ V(4, 0, 4),
  1045.   /* 0100 */ V(2, 3, 4),
  1046.   /* 0101 */ V(3, 2, 4),
  1047.   /* 0110 */ V(1, 3, 3),
  1048.   /* 0111 */ V(1, 3, 3),
  1049.   /* 1000 */ V(3, 1, 3),
  1050.   /* 1001 */ V(3, 1, 3),
  1051.   /* 1010 */ V(0, 3, 3),
  1052.   /* 1011 */ V(0, 3, 3),
  1053.   /* 1100 */ V(3, 0, 3),
  1054.   /* 1101 */ V(3, 0, 3),
  1055.   /* 1110 */ V(2, 2, 3),
  1056.   /* 1111 */ V(2, 2, 3),
  1057.  
  1058.   /* 0011 ... */
  1059.   /* 00   */ V(1, 2, 2),    /* 64 */
  1060.   /* 01   */ V(2, 1, 2),
  1061.   /* 10   */ V(0, 2, 2),
  1062.   /* 11   */ V(2, 0, 2),
  1063.  
  1064.   /* 0000 0000 ... */
  1065.   /* 0000 */ PTR(262, 4),    /* 68 */
  1066.   /* 0001 */ PTR(278, 4),
  1067.   /* 0010 */ PTR(294, 4),
  1068.   /* 0011 */ PTR(310, 3),
  1069.   /* 0100 */ PTR(318, 2),
  1070.   /* 0101 */ PTR(322, 2),
  1071.   /* 0110 */ PTR(326, 3),
  1072.   /* 0111 */ PTR(334, 2),
  1073.   /* 1000 */ PTR(338, 1),
  1074.   /* 1001 */ PTR(340, 2),
  1075.   /* 1010 */ PTR(344, 2),
  1076.   /* 1011 */ PTR(348, 2),
  1077.   /* 1100 */ PTR(352, 2),
  1078.   /* 1101 */ PTR(356, 2),
  1079.   /* 1110 */ V(1, 15, 4),
  1080.   /* 1111 */ V(15, 1, 4),
  1081.  
  1082.   /* 0000 0001 ... */
  1083.   /* 0000 */ V(15, 0, 4),    /* 84 */
  1084.   /* 0001 */ PTR(360, 1),
  1085.   /* 0010 */ PTR(362, 1),
  1086.   /* 0011 */ PTR(364, 1),
  1087.   /* 0100 */ V(14, 2, 4),
  1088.   /* 0101 */ PTR(366, 1),
  1089.   /* 0110 */ V(1, 14, 4),
  1090.   /* 0111 */ V(14, 1, 4),
  1091.   /* 1000 */ PTR(368, 1),
  1092.   /* 1001 */ PTR(370, 1),
  1093.   /* 1010 */ PTR(372, 1),
  1094.   /* 1011 */ PTR(374, 1),
  1095.   /* 1100 */ PTR(376, 1),
  1096.   /* 1101 */ PTR(378, 1),
  1097.   /* 1110 */ V(12, 6, 4),
  1098.   /* 1111 */ V(3, 13, 4),
  1099.  
  1100.   /* 0000 0010 ... */
  1101.   /* 0000 */ PTR(380, 1),    /* 100 */
  1102.   /* 0001 */ V(2, 13, 4),
  1103.   /* 0010 */ V(13, 2, 4),
  1104.   /* 0011 */ V(1, 13, 4),
  1105.   /* 0100 */ V(11, 7, 4),
  1106.   /* 0101 */ PTR(382, 1),
  1107.   /* 0110 */ PTR(384, 1),
  1108.   /* 0111 */ V(12, 3, 4),
  1109.   /* 1000 */ PTR(386, 1),
  1110.   /* 1001 */ V(4, 11, 4),
  1111.   /* 1010 */ V(13, 1, 3),
  1112.   /* 1011 */ V(13, 1, 3),
  1113.   /* 1100 */ V(0, 13, 4),
  1114.   /* 1101 */ V(13, 0, 4),
  1115.   /* 1110 */ V(8, 10, 4),
  1116.   /* 1111 */ V(10, 8, 4),
  1117.  
  1118.   /* 0000 0011 ... */
  1119.   /* 0000 */ V(4, 12, 4),    /* 116 */
  1120.   /* 0001 */ V(12, 4, 4),
  1121.   /* 0010 */ V(6, 11, 4),
  1122.   /* 0011 */ V(11, 6, 4),
  1123.   /* 0100 */ V(3, 12, 3),
  1124.   /* 0101 */ V(3, 12, 3),
  1125.   /* 0110 */ V(2, 12, 3),
  1126.   /* 0111 */ V(2, 12, 3),
  1127.   /* 1000 */ V(12, 2, 3),
  1128.   /* 1001 */ V(12, 2, 3),
  1129.   /* 1010 */ V(5, 11, 3),
  1130.   /* 1011 */ V(5, 11, 3),
  1131.   /* 1100 */ V(11, 5, 4),
  1132.   /* 1101 */ V(8, 9, 4),
  1133.   /* 1110 */ V(1, 12, 3),
  1134.   /* 1111 */ V(1, 12, 3),
  1135.  
  1136.   /* 0000 0100 ... */
  1137.   /* 0000 */ V(12, 1, 3),    /* 132 */
  1138.   /* 0001 */ V(12, 1, 3),
  1139.   /* 0010 */ V(9, 8, 4),
  1140.   /* 0011 */ V(0, 12, 4),
  1141.   /* 0100 */ V(12, 0, 3),
  1142.   /* 0101 */ V(12, 0, 3),
  1143.   /* 0110 */ V(11, 4, 4),
  1144.   /* 0111 */ V(6, 10, 4),
  1145.   /* 1000 */ V(10, 6, 4),
  1146.   /* 1001 */ V(7, 9, 4),
  1147.   /* 1010 */ V(3, 11, 3),
  1148.   /* 1011 */ V(3, 11, 3),
  1149.   /* 1100 */ V(11, 3, 3),
  1150.   /* 1101 */ V(11, 3, 3),
  1151.   /* 1110 */ V(8, 8, 4),
  1152.   /* 1111 */ V(5, 10, 4),
  1153.  
  1154.   /* 0000 0101 ... */
  1155.   /* 0000 */ V(2, 11, 3),    /* 148 */
  1156.   /* 0001 */ V(2, 11, 3),
  1157.   /* 0010 */ V(10, 5, 4),
  1158.   /* 0011 */ V(6, 9, 4),
  1159.   /* 0100 */ V(10, 4, 3),
  1160.   /* 0101 */ V(10, 4, 3),
  1161.   /* 0110 */ V(7, 8, 4),
  1162.   /* 0111 */ V(8, 7, 4),
  1163.   /* 1000 */ V(9, 4, 3),
  1164.   /* 1001 */ V(9, 4, 3),
  1165.   /* 1010 */ V(7, 7, 4),
  1166.   /* 1011 */ V(7, 6, 4),
  1167.   /* 1100 */ V(11, 2, 2),
  1168.   /* 1101 */ V(11, 2, 2),
  1169.   /* 1110 */ V(11, 2, 2),
  1170.   /* 1111 */ V(11, 2, 2),
  1171.  
  1172.   /* 0000 0110 ... */
  1173.   /* 000  */ V(1, 11, 2),    /* 164 */
  1174.   /* 001  */ V(1, 11, 2),
  1175.   /* 010  */ V(11, 1, 2),
  1176.   /* 011  */ V(11, 1, 2),
  1177.   /* 100  */ V(0, 11, 3),
  1178.   /* 101  */ V(11, 0, 3),
  1179.   /* 110  */ V(9, 6, 3),
  1180.   /* 111  */ V(4, 10, 3),
  1181.  
  1182.   /* 0000 0111 ... */
  1183.   /* 000  */ V(3, 10, 3),    /* 172 */
  1184.   /* 001  */ V(10, 3, 3),
  1185.   /* 010  */ V(5, 9, 3),
  1186.   /* 011  */ V(9, 5, 3),
  1187.   /* 100  */ V(2, 10, 2),
  1188.   /* 101  */ V(2, 10, 2),
  1189.   /* 110  */ V(10, 2, 2),
  1190.   /* 111  */ V(10, 2, 2),
  1191.  
  1192.   /* 0000 1000 ... */
  1193.   /* 000  */ V(1, 10, 2),    /* 180 */
  1194.   /* 001  */ V(1, 10, 2),
  1195.   /* 010  */ V(10, 1, 2),
  1196.   /* 011  */ V(10, 1, 2),
  1197.   /* 100  */ V(0, 10, 3),
  1198.   /* 101  */ V(6, 8, 3),
  1199.   /* 110  */ V(10, 0, 2),
  1200.   /* 111  */ V(10, 0, 2),
  1201.  
  1202.   /* 0000 1001 ... */
  1203.   /* 000  */ V(8, 6, 3),    /* 188 */
  1204.   /* 001  */ V(4, 9, 3),
  1205.   /* 010  */ V(9, 3, 2),
  1206.   /* 011  */ V(9, 3, 2),
  1207.   /* 100  */ V(3, 9, 3),
  1208.   /* 101  */ V(5, 8, 3),
  1209.   /* 110  */ V(8, 5, 3),
  1210.   /* 111  */ V(6, 7, 3),
  1211.  
  1212.   /* 0000 1010 ... */
  1213.   /* 000  */ V(2, 9, 2),    /* 196 */
  1214.   /* 001  */ V(2, 9, 2),
  1215.   /* 010  */ V(9, 2, 2),
  1216.   /* 011  */ V(9, 2, 2),
  1217.   /* 100  */ V(5, 7, 3),
  1218.   /* 101  */ V(7, 5, 3),
  1219.   /* 110  */ V(3, 8, 2),
  1220.   /* 111  */ V(3, 8, 2),
  1221.  
  1222.   /* 0000 1011 ... */
  1223.   /* 000  */ V(8, 3, 2),    /* 204 */
  1224.   /* 001  */ V(8, 3, 2),
  1225.   /* 010  */ V(6, 6, 3),
  1226.   /* 011  */ V(4, 7, 3),
  1227.   /* 100  */ V(7, 4, 3),
  1228.   /* 101  */ V(5, 6, 3),
  1229.   /* 110  */ V(6, 5, 3),
  1230.   /* 111  */ V(7, 3, 3),
  1231.  
  1232.   /* 0000 1100 ... */
  1233.   /* 0    */ V(1, 9, 1),    /* 212 */
  1234.   /* 1    */ V(9, 1, 1),
  1235.  
  1236.   /* 0000 1101 ... */
  1237.   /* 00   */ V(0, 9, 2),    /* 214 */
  1238.   /* 01   */ V(9, 0, 2),
  1239.   /* 10   */ V(4, 8, 2),
  1240.   /* 11   */ V(8, 4, 2),
  1241.  
  1242.   /* 0000 1110 ... */
  1243.   /* 000  */ V(7, 2, 2),    /* 218 */
  1244.   /* 001  */ V(7, 2, 2),
  1245.   /* 010  */ V(4, 6, 3),
  1246.   /* 011  */ V(6, 4, 3),
  1247.   /* 100  */ V(2, 8, 1),
  1248.   /* 101  */ V(2, 8, 1),
  1249.   /* 110  */ V(2, 8, 1),
  1250.   /* 111  */ V(2, 8, 1),
  1251.  
  1252.   /* 0000 1111 ... */
  1253.   /* 0    */ V(8, 2, 1),    /* 226 */
  1254.   /* 1    */ V(1, 8, 1),
  1255.  
  1256.   /* 0001 0000 ... */
  1257.   /* 00   */ V(3, 7, 2),    /* 228 */
  1258.   /* 01   */ V(2, 7, 2),
  1259.   /* 10   */ V(1, 7, 1),
  1260.   /* 11   */ V(1, 7, 1),
  1261.  
  1262.   /* 0001 0001 ... */
  1263.   /* 00   */ V(7, 1, 1),    /* 232 */
  1264.   /* 01   */ V(7, 1, 1),
  1265.   /* 10   */ V(5, 5, 2),
  1266.   /* 11   */ V(0, 7, 2),
  1267.  
  1268.   /* 0001 0010 ... */
  1269.   /* 00   */ V(7, 0, 2),    /* 236 */
  1270.   /* 01   */ V(3, 6, 2),
  1271.   /* 10   */ V(6, 3, 2),
  1272.   /* 11   */ V(4, 5, 2),
  1273.  
  1274.   /* 0001 0011 ... */
  1275.   /* 00   */ V(5, 4, 2),    /* 240 */
  1276.   /* 01   */ V(2, 6, 2),
  1277.   /* 10   */ V(6, 2, 2),
  1278.   /* 11   */ V(3, 5, 2),
  1279.  
  1280.   /* 0001 0101 ... */
  1281.   /* 0    */ V(0, 8, 1),    /* 244 */
  1282.   /* 1    */ V(8, 0, 1),
  1283.  
  1284.   /* 0001 0110 ... */
  1285.   /* 0    */ V(1, 6, 1),    /* 246 */
  1286.   /* 1    */ V(6, 1, 1),
  1287.  
  1288.   /* 0001 0111 ... */
  1289.   /* 0    */ V(0, 6, 1),    /* 248 */
  1290.   /* 1    */ V(6, 0, 1),
  1291.  
  1292.   /* 0001 1000 ... */
  1293.   /* 00   */ V(5, 3, 2),    /* 250 */
  1294.   /* 01   */ V(4, 4, 2),
  1295.   /* 10   */ V(2, 5, 1),
  1296.   /* 11   */ V(2, 5, 1),
  1297.  
  1298.   /* 0001 1001 ... */
  1299.   /* 0    */ V(5, 2, 1),    /* 254 */
  1300.   /* 1    */ V(0, 5, 1),
  1301.  
  1302.   /* 0001 1100 ... */
  1303.   /* 0    */ V(3, 4, 1),    /* 256 */
  1304.   /* 1    */ V(4, 3, 1),
  1305.  
  1306.   /* 0001 1101 ... */
  1307.   /* 0    */ V(5, 0, 1),    /* 258 */
  1308.   /* 1    */ V(2, 4, 1),
  1309.  
  1310.   /* 0001 1110 ... */
  1311.   /* 0    */ V(4, 2, 1),    /* 260 */
  1312.   /* 1    */ V(3, 3, 1),
  1313.  
  1314.   /* 0000 0000 0000 ... */
  1315.   /* 0000 */ PTR(388, 3),    /* 262 */
  1316.   /* 0001 */ V(15, 15, 4),
  1317.   /* 0010 */ V(14, 15, 4),
  1318.   /* 0011 */ V(13, 15, 4),
  1319.   /* 0100 */ V(14, 14, 4),
  1320.   /* 0101 */ V(12, 15, 4),
  1321.   /* 0110 */ V(13, 14, 4),
  1322.   /* 0111 */ V(11, 15, 4),
  1323.   /* 1000 */ V(15, 11, 4),
  1324.   /* 1001 */ V(12, 14, 4),
  1325.   /* 1010 */ V(13, 12, 4),
  1326.   /* 1011 */ PTR(396, 1),
  1327.   /* 1100 */ V(14, 12, 3),
  1328.   /* 1101 */ V(14, 12, 3),
  1329.   /* 1110 */ V(13, 13, 3),
  1330.   /* 1111 */ V(13, 13, 3),
  1331.  
  1332.   /* 0000 0000 0001 ... */
  1333.   /* 0000 */ V(15, 10, 4),    /* 278 */
  1334.   /* 0001 */ V(12, 13, 4),
  1335.   /* 0010 */ V(11, 14, 3),
  1336.   /* 0011 */ V(11, 14, 3),
  1337.   /* 0100 */ V(14, 11, 3),
  1338.   /* 0101 */ V(14, 11, 3),
  1339.   /* 0110 */ V(9, 15, 3),
  1340.   /* 0111 */ V(9, 15, 3),
  1341.   /* 1000 */ V(15, 9, 3),
  1342.   /* 1001 */ V(15, 9, 3),
  1343.   /* 1010 */ V(14, 10, 3),
  1344.   /* 1011 */ V(14, 10, 3),
  1345.   /* 1100 */ V(11, 13, 3),
  1346.   /* 1101 */ V(11, 13, 3),
  1347.   /* 1110 */ V(13, 11, 3),
  1348.   /* 1111 */ V(13, 11, 3),
  1349.  
  1350.   /* 0000 0000 0010 ... */
  1351.   /* 0000 */ V(8, 15, 3),    /* 294 */
  1352.   /* 0001 */ V(8, 15, 3),
  1353.   /* 0010 */ V(15, 8, 3),
  1354.   /* 0011 */ V(15, 8, 3),
  1355.   /* 0100 */ V(12, 12, 3),
  1356.   /* 0101 */ V(12, 12, 3),
  1357.   /* 0110 */ V(10, 14, 4),
  1358.   /* 0111 */ V(9, 14, 4),
  1359.   /* 1000 */ V(8, 14, 3),
  1360.   /* 1001 */ V(8, 14, 3),
  1361.   /* 1010 */ V(7, 15, 4),
  1362.   /* 1011 */ V(7, 14, 4),
  1363.   /* 1100 */ V(15, 7, 2),
  1364.   /* 1101 */ V(15, 7, 2),
  1365.   /* 1110 */ V(15, 7, 2),
  1366.   /* 1111 */ V(15, 7, 2),
  1367.  
  1368.   /* 0000 0000 0011 ... */
  1369.   /* 000  */ V(13, 10, 2),    /* 310 */
  1370.   /* 001  */ V(13, 10, 2),
  1371.   /* 010  */ V(10, 13, 3),
  1372.   /* 011  */ V(11, 12, 3),
  1373.   /* 100  */ V(12, 11, 3),
  1374.   /* 101  */ V(15, 6, 3),
  1375.   /* 110  */ V(6, 15, 2),
  1376.   /* 111  */ V(6, 15, 2),
  1377.  
  1378.   /* 0000 0000 0100 ... */
  1379.   /* 00   */ V(14, 8, 2),    /* 318 */
  1380.   /* 01   */ V(5, 15, 2),
  1381.   /* 10   */ V(9, 13, 2),
  1382.   /* 11   */ V(13, 9, 2),
  1383.  
  1384.   /* 0000 0000 0101 ... */
  1385.   /* 00   */ V(15, 5, 2),    /* 322 */
  1386.   /* 01   */ V(14, 7, 2),
  1387.   /* 10   */ V(10, 12, 2),
  1388.   /* 11   */ V(11, 11, 2),
  1389.  
  1390.   /* 0000 0000 0110 ... */
  1391.   /* 000  */ V(4, 15, 2),    /* 326 */
  1392.   /* 001  */ V(4, 15, 2),
  1393.   /* 010  */ V(15, 4, 2),
  1394.   /* 011  */ V(15, 4, 2),
  1395.   /* 100  */ V(12, 10, 3),
  1396.   /* 101  */ V(14, 6, 3),
  1397.   /* 110  */ V(15, 3, 2),
  1398.   /* 111  */ V(15, 3, 2),
  1399.  
  1400.   /* 0000 0000 0111 ... */
  1401.   /* 00   */ V(3, 15, 1),    /* 334 */
  1402.   /* 01   */ V(3, 15, 1),
  1403.   /* 10   */ V(8, 13, 2),
  1404.   /* 11   */ V(13, 8, 2),
  1405.  
  1406.   /* 0000 0000 1000 ... */
  1407.   /* 0    */ V(2, 15, 1),    /* 338 */
  1408.   /* 1    */ V(15, 2, 1),
  1409.  
  1410.   /* 0000 0000 1001 ... */
  1411.   /* 00   */ V(6, 14, 2),    /* 340 */
  1412.   /* 01   */ V(9, 12, 2),
  1413.   /* 10   */ V(0, 15, 1),
  1414.   /* 11   */ V(0, 15, 1),
  1415.  
  1416.   /* 0000 0000 1010 ... */
  1417.   /* 00   */ V(12, 9, 2),    /* 344 */
  1418.   /* 01   */ V(5, 14, 2),
  1419.   /* 10   */ V(10, 11, 1),
  1420.   /* 11   */ V(10, 11, 1),
  1421.  
  1422.   /* 0000 0000 1011 ... */
  1423.   /* 00   */ V(7, 13, 2),    /* 348 */
  1424.   /* 01   */ V(13, 7, 2),
  1425.   /* 10   */ V(4, 14, 1),
  1426.   /* 11   */ V(4, 14, 1),
  1427.  
  1428.   /* 0000 0000 1100 ... */
  1429.   /* 00   */ V(12, 8, 2),    /* 352 */
  1430.   /* 01   */ V(13, 6, 2),
  1431.   /* 10   */ V(3, 14, 1),
  1432.   /* 11   */ V(3, 14, 1),
  1433.  
  1434.   /* 0000 0000 1101 ... */
  1435.   /* 00   */ V(11, 9, 1),    /* 356 */
  1436.   /* 01   */ V(11, 9, 1),
  1437.   /* 10   */ V(9, 11, 2),
  1438.   /* 11   */ V(10, 10, 2),
  1439.  
  1440.   /* 0000 0001 0001 ... */
  1441.   /* 0    */ V(11, 10, 1),    /* 360 */
  1442.   /* 1    */ V(14, 5, 1),
  1443.  
  1444.   /* 0000 0001 0010 ... */
  1445.   /* 0    */ V(14, 4, 1),    /* 362 */
  1446.   /* 1    */ V(8, 12, 1),
  1447.  
  1448.   /* 0000 0001 0011 ... */
  1449.   /* 0    */ V(6, 13, 1),    /* 364 */
  1450.   /* 1    */ V(14, 3, 1),
  1451.  
  1452.   /* 0000 0001 0101 ... */
  1453.   /* 0    */ V(2, 14, 1),    /* 366 */
  1454.   /* 1    */ V(0, 14, 1),
  1455.  
  1456.   /* 0000 0001 1000 ... */
  1457.   /* 0    */ V(14, 0, 1),    /* 368 */
  1458.   /* 1    */ V(5, 13, 1),
  1459.  
  1460.   /* 0000 0001 1001 ... */
  1461.   /* 0    */ V(13, 5, 1),    /* 370 */
  1462.   /* 1    */ V(7, 12, 1),
  1463.  
  1464.   /* 0000 0001 1010 ... */
  1465.   /* 0    */ V(12, 7, 1),    /* 372 */
  1466.   /* 1    */ V(4, 13, 1),
  1467.  
  1468.   /* 0000 0001 1011 ... */
  1469.   /* 0    */ V(8, 11, 1),    /* 374 */
  1470.   /* 1    */ V(11, 8, 1),
  1471.  
  1472.   /* 0000 0001 1100 ... */
  1473.   /* 0    */ V(13, 4, 1),    /* 376 */
  1474.   /* 1    */ V(9, 10, 1),
  1475.  
  1476.   /* 0000 0001 1101 ... */
  1477.   /* 0    */ V(10, 9, 1),    /* 378 */
  1478.   /* 1    */ V(6, 12, 1),
  1479.  
  1480.   /* 0000 0010 0000 ... */
  1481.   /* 0    */ V(13, 3, 1),    /* 380 */
  1482.   /* 1    */ V(7, 11, 1),
  1483.  
  1484.   /* 0000 0010 0101 ... */
  1485.   /* 0    */ V(5, 12, 1),    /* 382 */
  1486.   /* 1    */ V(12, 5, 1),
  1487.  
  1488.   /* 0000 0010 0110 ... */
  1489.   /* 0    */ V(9, 9, 1),    /* 384 */
  1490.   /* 1    */ V(7, 10, 1),
  1491.  
  1492.   /* 0000 0010 1000 ... */
  1493.   /* 0    */ V(10, 7, 1),    /* 386 */
  1494.   /* 1    */ V(9, 7, 1),
  1495.  
  1496.   /* 0000 0000 0000 0000 ... */
  1497.   /* 000  */ V(15, 14, 3),    /* 388 */
  1498.   /* 001  */ V(15, 12, 3),
  1499.   /* 010  */ V(15, 13, 2),
  1500.   /* 011  */ V(15, 13, 2),
  1501.   /* 100  */ V(14, 13, 1),
  1502.   /* 101  */ V(14, 13, 1),
  1503.   /* 110  */ V(14, 13, 1),
  1504.   /* 111  */ V(14, 13, 1),
  1505.  
  1506.   /* 0000 0000 0000 1011 ... */
  1507.   /* 0    */ V(10, 15, 1),    /* 396 */
  1508.   /* 1    */ V(14, 9, 1)
  1509. };
  1510.  
  1511. static
  1512. union huffpair const hufftab15[] = {
  1513.   /* 0000 */ PTR(16, 4),
  1514.   /* 0001 */ PTR(32, 4),
  1515.   /* 0010 */ PTR(48, 4),
  1516.   /* 0011 */ PTR(64, 4),
  1517.   /* 0100 */ PTR(80, 4),
  1518.   /* 0101 */ PTR(96, 3),
  1519.   /* 0110 */ PTR(104, 3),
  1520.   /* 0111 */ PTR(112, 2),
  1521.   /* 1000 */ PTR(116, 1),
  1522.   /* 1001 */ PTR(118, 1),
  1523.   /* 1010 */ V(1, 1, 3),
  1524.   /* 1011 */ V(1, 1, 3),
  1525.   /* 1100 */ V(0, 1, 4),
  1526.   /* 1101 */ V(1, 0, 4),
  1527.   /* 1110 */ V(0, 0, 3),
  1528.   /* 1111 */ V(0, 0, 3),
  1529.  
  1530.   /* 0000 ... */
  1531.   /* 0000 */ PTR(120, 4),    /* 16 */
  1532.   /* 0001 */ PTR(136, 4),
  1533.   /* 0010 */ PTR(152, 4),
  1534.   /* 0011 */ PTR(168, 4),
  1535.   /* 0100 */ PTR(184, 4),
  1536.   /* 0101 */ PTR(200, 3),
  1537.   /* 0110 */ PTR(208, 3),
  1538.   /* 0111 */ PTR(216, 4),
  1539.   /* 1000 */ PTR(232, 3),
  1540.   /* 1001 */ PTR(240, 3),
  1541.   /* 1010 */ PTR(248, 3),
  1542.   /* 1011 */ PTR(256, 3),
  1543.   /* 1100 */ PTR(264, 2),
  1544.   /* 1101 */ PTR(268, 3),
  1545.   /* 1110 */ PTR(276, 3),
  1546.   /* 1111 */ PTR(284, 2),
  1547.  
  1548.   /* 0001 ... */
  1549.   /* 0000 */ PTR(288, 2),    /* 32 */
  1550.   /* 0001 */ PTR(292, 2),
  1551.   /* 0010 */ PTR(296, 2),
  1552.   /* 0011 */ PTR(300, 2),
  1553.   /* 0100 */ PTR(304, 2),
  1554.   /* 0101 */ PTR(308, 2),
  1555.   /* 0110 */ PTR(312, 2),
  1556.   /* 0111 */ PTR(316, 2),
  1557.   /* 1000 */ PTR(320, 1),
  1558.   /* 1001 */ PTR(322, 1),
  1559.   /* 1010 */ PTR(324, 1),
  1560.   /* 1011 */ PTR(326, 2),
  1561.   /* 1100 */ PTR(330, 1),
  1562.   /* 1101 */ PTR(332, 1),
  1563.   /* 1110 */ PTR(334, 2),
  1564.   /* 1111 */ PTR(338, 1),
  1565.  
  1566.   /* 0010 ... */
  1567.   /* 0000 */ PTR(340, 1),    /* 48 */
  1568.   /* 0001 */ PTR(342, 1),
  1569.   /* 0010 */ V(9, 1, 4),
  1570.   /* 0011 */ PTR(344, 1),
  1571.   /* 0100 */ PTR(346, 1),
  1572.   /* 0101 */ PTR(348, 1),
  1573.   /* 0110 */ PTR(350, 1),
  1574.   /* 0111 */ PTR(352, 1),
  1575.   /* 1000 */ V(2, 8, 4),
  1576.   /* 1001 */ V(8, 2, 4),
  1577.   /* 1010 */ V(1, 8, 4),
  1578.   /* 1011 */ V(8, 1, 4),
  1579.   /* 1100 */ PTR(354, 1),
  1580.   /* 1101 */ PTR(356, 1),
  1581.   /* 1110 */ PTR(358, 1),
  1582.   /* 1111 */ PTR(360, 1),
  1583.  
  1584.   /* 0011 ... */
  1585.   /* 0000 */ V(2, 7, 4),    /* 64 */
  1586.   /* 0001 */ V(7, 2, 4),
  1587.   /* 0010 */ V(6, 4, 4),
  1588.   /* 0011 */ V(1, 7, 4),
  1589.   /* 0100 */ V(5, 5, 4),
  1590.   /* 0101 */ V(7, 1, 4),
  1591.   /* 0110 */ PTR(362, 1),
  1592.   /* 0111 */ V(3, 6, 4),
  1593.   /* 1000 */ V(6, 3, 4),
  1594.   /* 1001 */ V(4, 5, 4),
  1595.   /* 1010 */ V(5, 4, 4),
  1596.   /* 1011 */ V(2, 6, 4),
  1597.   /* 1100 */ V(6, 2, 4),
  1598.   /* 1101 */ V(1, 6, 4),
  1599.   /* 1110 */ PTR(364, 1),
  1600.   /* 1111 */ V(3, 5, 4),
  1601.  
  1602.   /* 0100 ... */
  1603.   /* 0000 */ V(6, 1, 3),    /* 80 */
  1604.   /* 0001 */ V(6, 1, 3),
  1605.   /* 0010 */ V(5, 3, 4),
  1606.   /* 0011 */ V(4, 4, 4),
  1607.   /* 0100 */ V(2, 5, 3),
  1608.   /* 0101 */ V(2, 5, 3),
  1609.   /* 0110 */ V(5, 2, 3),
  1610.   /* 0111 */ V(5, 2, 3),
  1611.   /* 1000 */ V(1, 5, 3),
  1612.   /* 1001 */ V(1, 5, 3),
  1613.   /* 1010 */ V(5, 1, 3),
  1614.   /* 1011 */ V(5, 1, 3),
  1615.   /* 1100 */ V(0, 5, 4),
  1616.   /* 1101 */ V(5, 0, 4),
  1617.   /* 1110 */ V(3, 4, 3),
  1618.   /* 1111 */ V(3, 4, 3),
  1619.  
  1620.   /* 0101 ... */
  1621.   /* 000  */ V(4, 3, 3),    /* 96 */
  1622.   /* 001  */ V(2, 4, 3),
  1623.   /* 010  */ V(4, 2, 3),
  1624.   /* 011  */ V(3, 3, 3),
  1625.   /* 100  */ V(4, 1, 2),
  1626.   /* 101  */ V(4, 1, 2),
  1627.   /* 110  */ V(1, 4, 3),
  1628.   /* 111  */ V(0, 4, 3),
  1629.  
  1630.   /* 0110 ... */
  1631.   /* 000  */ V(2, 3, 2),    /* 104 */
  1632.   /* 001  */ V(2, 3, 2),
  1633.   /* 010  */ V(3, 2, 2),
  1634.   /* 011  */ V(3, 2, 2),
  1635.   /* 100  */ V(4, 0, 3),
  1636.   /* 101  */ V(0, 3, 3),
  1637.   /* 110  */ V(1, 3, 2),
  1638.   /* 111  */ V(1, 3, 2),
  1639.  
  1640.   /* 0111 ... */
  1641.   /* 00   */ V(3, 1, 2),    /* 112 */
  1642.   /* 01   */ V(3, 0, 2),
  1643.   /* 10   */ V(2, 2, 1),
  1644.   /* 11   */ V(2, 2, 1),
  1645.  
  1646.   /* 1000 ... */
  1647.   /* 0    */ V(1, 2, 1),    /* 116 */
  1648.   /* 1    */ V(2, 1, 1),
  1649.  
  1650.   /* 1001 ... */
  1651.   /* 0    */ V(0, 2, 1),    /* 118 */
  1652.   /* 1    */ V(2, 0, 1),
  1653.  
  1654.   /* 0000 0000 ... */
  1655.   /* 0000 */ PTR(366, 1),    /* 120 */
  1656.   /* 0001 */ PTR(368, 1),
  1657.   /* 0010 */ V(14, 14, 4),
  1658.   /* 0011 */ PTR(370, 1),
  1659.   /* 0100 */ PTR(372, 1),
  1660.   /* 0101 */ PTR(374, 1),
  1661.   /* 0110 */ V(15, 11, 4),
  1662.   /* 0111 */ PTR(376, 1),
  1663.   /* 1000 */ V(13, 13, 4),
  1664.   /* 1001 */ V(10, 15, 4),
  1665.   /* 1010 */ V(15, 10, 4),
  1666.   /* 1011 */ V(11, 14, 4),
  1667.   /* 1100 */ V(14, 11, 4),
  1668.   /* 1101 */ V(12, 13, 4),
  1669.   /* 1110 */ V(13, 12, 4),
  1670.   /* 1111 */ V(9, 15, 4),
  1671.  
  1672.   /* 0000 0001 ... */
  1673.   /* 0000 */ V(15, 9, 4),    /* 136 */
  1674.   /* 0001 */ V(14, 10, 4),
  1675.   /* 0010 */ V(11, 13, 4),
  1676.   /* 0011 */ V(13, 11, 4),
  1677.   /* 0100 */ V(8, 15, 4),
  1678.   /* 0101 */ V(15, 8, 4),
  1679.   /* 0110 */ V(12, 12, 4),
  1680.   /* 0111 */ V(9, 14, 4),
  1681.   /* 1000 */ V(14, 9, 4),
  1682.   /* 1001 */ V(7, 15, 4),
  1683.   /* 1010 */ V(15, 7, 4),
  1684.   /* 1011 */ V(10, 13, 4),
  1685.   /* 1100 */ V(13, 10, 4),
  1686.   /* 1101 */ V(11, 12, 4),
  1687.   /* 1110 */ V(6, 15, 4),
  1688.   /* 1111 */ PTR(378, 1),
  1689.  
  1690.   /* 0000 0010 ... */
  1691.   /* 0000 */ V(12, 11, 3),    /* 152 */
  1692.   /* 0001 */ V(12, 11, 3),
  1693.   /* 0010 */ V(15, 6, 3),
  1694.   /* 0011 */ V(15, 6, 3),
  1695.   /* 0100 */ V(8, 14, 4),
  1696.   /* 0101 */ V(14, 8, 4),
  1697.   /* 0110 */ V(5, 15, 4),
  1698.   /* 0111 */ V(9, 13, 4),
  1699.   /* 1000 */ V(15, 5, 3),
  1700.   /* 1001 */ V(15, 5, 3),
  1701.   /* 1010 */ V(7, 14, 3),
  1702.   /* 1011 */ V(7, 14, 3),
  1703.   /* 1100 */ V(14, 7, 3),
  1704.   /* 1101 */ V(14, 7, 3),
  1705.   /* 1110 */ V(10, 12, 3),
  1706.   /* 1111 */ V(10, 12, 3),
  1707.  
  1708.   /* 0000 0011 ... */
  1709.   /* 0000 */ V(12, 10, 3),    /* 168 */
  1710.   /* 0001 */ V(12, 10, 3),
  1711.   /* 0010 */ V(11, 11, 3),
  1712.   /* 0011 */ V(11, 11, 3),
  1713.   /* 0100 */ V(13, 9, 4),
  1714.   /* 0101 */ V(8, 13, 4),
  1715.   /* 0110 */ V(4, 15, 3),
  1716.   /* 0111 */ V(4, 15, 3),
  1717.   /* 1000 */ V(15, 4, 3),
  1718.   /* 1001 */ V(15, 4, 3),
  1719.   /* 1010 */ V(3, 15, 3),
  1720.   /* 1011 */ V(3, 15, 3),
  1721.   /* 1100 */ V(15, 3, 3),
  1722.   /* 1101 */ V(15, 3, 3),
  1723.   /* 1110 */ V(13, 8, 3),
  1724.   /* 1111 */ V(13, 8, 3),
  1725.  
  1726.   /* 0000 0100 ... */
  1727.   /* 0000 */ V(14, 6, 3),    /* 184 */
  1728.   /* 0001 */ V(14, 6, 3),
  1729.   /* 0010 */ V(2, 15, 3),
  1730.   /* 0011 */ V(2, 15, 3),
  1731.   /* 0100 */ V(15, 2, 3),
  1732.   /* 0101 */ V(15, 2, 3),
  1733.   /* 0110 */ V(6, 14, 4),
  1734.   /* 0111 */ V(15, 0, 4),
  1735.   /* 1000 */ V(1, 15, 3),
  1736.   /* 1001 */ V(1, 15, 3),
  1737.   /* 1010 */ V(15, 1, 3),
  1738.   /* 1011 */ V(15, 1, 3),
  1739.   /* 1100 */ V(9, 12, 3),
  1740.   /* 1101 */ V(9, 12, 3),
  1741.   /* 1110 */ V(12, 9, 3),
  1742.   /* 1111 */ V(12, 9, 3),
  1743.  
  1744.   /* 0000 0101 ... */
  1745.   /* 000  */ V(5, 14, 3),    /* 200 */
  1746.   /* 001  */ V(10, 11, 3),
  1747.   /* 010  */ V(11, 10, 3),
  1748.   /* 011  */ V(14, 5, 3),
  1749.   /* 100  */ V(7, 13, 3),
  1750.   /* 101  */ V(13, 7, 3),
  1751.   /* 110  */ V(4, 14, 3),
  1752.   /* 111  */ V(14, 4, 3),
  1753.  
  1754.   /* 0000 0110 ... */
  1755.   /* 000  */ V(8, 12, 3),    /* 208 */
  1756.   /* 001  */ V(12, 8, 3),
  1757.   /* 010  */ V(3, 14, 3),
  1758.   /* 011  */ V(6, 13, 3),
  1759.   /* 100  */ V(13, 6, 3),
  1760.   /* 101  */ V(14, 3, 3),
  1761.   /* 110  */ V(9, 11, 3),
  1762.   /* 111  */ V(11, 9, 3),
  1763.  
  1764.   /* 0000 0111 ... */
  1765.   /* 0000 */ V(2, 14, 3),    /* 216 */
  1766.   /* 0001 */ V(2, 14, 3),
  1767.   /* 0010 */ V(10, 10, 3),
  1768.   /* 0011 */ V(10, 10, 3),
  1769.   /* 0100 */ V(14, 2, 3),
  1770.   /* 0101 */ V(14, 2, 3),
  1771.   /* 0110 */ V(1, 14, 3),
  1772.   /* 0111 */ V(1, 14, 3),
  1773.   /* 1000 */ V(14, 1, 3),
  1774.   /* 1001 */ V(14, 1, 3),
  1775.   /* 1010 */ V(0, 14, 4),
  1776.   /* 1011 */ V(14, 0, 4),
  1777.   /* 1100 */ V(5, 13, 3),
  1778.   /* 1101 */ V(5, 13, 3),
  1779.   /* 1110 */ V(13, 5, 3),
  1780.   /* 1111 */ V(13, 5, 3),
  1781.  
  1782.   /* 0000 1000 ... */
  1783.   /* 000  */ V(7, 12, 3),    /* 232 */
  1784.   /* 001  */ V(12, 7, 3),
  1785.   /* 010  */ V(4, 13, 3),
  1786.   /* 011  */ V(8, 11, 3),
  1787.   /* 100  */ V(13, 4, 2),
  1788.   /* 101  */ V(13, 4, 2),
  1789.   /* 110  */ V(11, 8, 3),
  1790.   /* 111  */ V(9, 10, 3),
  1791.  
  1792.   /* 0000 1001 ... */
  1793.   /* 000  */ V(10, 9, 3),    /* 240 */
  1794.   /* 001  */ V(6, 12, 3),
  1795.   /* 010  */ V(12, 6, 3),
  1796.   /* 011  */ V(3, 13, 3),
  1797.   /* 100  */ V(13, 3, 2),
  1798.   /* 101  */ V(13, 3, 2),
  1799.   /* 110  */ V(13, 2, 2),
  1800.   /* 111  */ V(13, 2, 2),
  1801.  
  1802.   /* 0000 1010 ... */
  1803.   /* 000  */ V(2, 13, 3),    /* 248 */
  1804.   /* 001  */ V(0, 13, 3),
  1805.   /* 010  */ V(1, 13, 2),
  1806.   /* 011  */ V(1, 13, 2),
  1807.   /* 100  */ V(7, 11, 2),
  1808.   /* 101  */ V(7, 11, 2),
  1809.   /* 110  */ V(11, 7, 2),
  1810.   /* 111  */ V(11, 7, 2),
  1811.  
  1812.   /* 0000 1011 ... */
  1813.   /* 000  */ V(13, 1, 2),    /* 256 */
  1814.   /* 001  */ V(13, 1, 2),
  1815.   /* 010  */ V(5, 12, 3),
  1816.   /* 011  */ V(13, 0, 3),
  1817.   /* 100  */ V(12, 5, 2),
  1818.   /* 101  */ V(12, 5, 2),
  1819.   /* 110  */ V(8, 10, 2),
  1820.   /* 111  */ V(8, 10, 2),
  1821.  
  1822.   /* 0000 1100 ... */
  1823.   /* 00   */ V(10, 8, 2),    /* 264 */
  1824.   /* 01   */ V(4, 12, 2),
  1825.   /* 10   */ V(12, 4, 2),
  1826.   /* 11   */ V(6, 11, 2),
  1827.  
  1828.   /* 0000 1101 ... */
  1829.   /* 000  */ V(11, 6, 2),    /* 268 */
  1830.   /* 001  */ V(11, 6, 2),
  1831.   /* 010  */ V(9, 9, 3),
  1832.   /* 011  */ V(0, 12, 3),
  1833.   /* 100  */ V(3, 12, 2),
  1834.   /* 101  */ V(3, 12, 2),
  1835.   /* 110  */ V(12, 3, 2),
  1836.   /* 111  */ V(12, 3, 2),
  1837.  
  1838.   /* 0000 1110 ... */
  1839.   /* 000  */ V(7, 10, 2),    /* 276 */
  1840.   /* 001  */ V(7, 10, 2),
  1841.   /* 010  */ V(10, 7, 2),
  1842.   /* 011  */ V(10, 7, 2),
  1843.   /* 100  */ V(10, 6, 2),
  1844.   /* 101  */ V(10, 6, 2),
  1845.   /* 110  */ V(12, 0, 3),
  1846.   /* 111  */ V(0, 11, 3),
  1847.  
  1848.   /* 0000 1111 ... */
  1849.   /* 00   */ V(12, 2, 1),    /* 284 */
  1850.   /* 01   */ V(12, 2, 1),
  1851.   /* 10   */ V(2, 12, 2),
  1852.   /* 11   */ V(5, 11, 2),
  1853.  
  1854.   /* 0001 0000 ... */
  1855.   /* 00   */ V(11, 5, 2),    /* 288 */
  1856.   /* 01   */ V(1, 12, 2),
  1857.   /* 10   */ V(8, 9, 2),
  1858.   /* 11   */ V(9, 8, 2),
  1859.  
  1860.   /* 0001 0001 ... */
  1861.   /* 00   */ V(12, 1, 2),    /* 292 */
  1862.   /* 01   */ V(4, 11, 2),
  1863.   /* 10   */ V(11, 4, 2),
  1864.   /* 11   */ V(6, 10, 2),
  1865.  
  1866.   /* 0001 0010 ... */
  1867.   /* 00   */ V(3, 11, 2),    /* 296 */
  1868.   /* 01   */ V(7, 9, 2),
  1869.   /* 10   */ V(11, 3, 1),
  1870.   /* 11   */ V(11, 3, 1),
  1871.  
  1872.   /* 0001 0011 ... */
  1873.   /* 00   */ V(9, 7, 2),    /* 300 */
  1874.   /* 01   */ V(8, 8, 2),
  1875.   /* 10   */ V(2, 11, 2),
  1876.   /* 11   */ V(5, 10, 2),
  1877.  
  1878.   /* 0001 0100 ... */
  1879.   /* 00   */ V(11, 2, 1),    /* 304 */
  1880.   /* 01   */ V(11, 2, 1),
  1881.   /* 10   */ V(10, 5, 2),
  1882.   /* 11   */ V(1, 11, 2),
  1883.  
  1884.   /* 0001 0101 ... */
  1885.   /* 00   */ V(11, 1, 1),    /* 308 */
  1886.   /* 01   */ V(11, 1, 1),
  1887.   /* 10   */ V(11, 0, 2),
  1888.   /* 11   */ V(6, 9, 2),
  1889.  
  1890.   /* 0001 0110 ... */
  1891.   /* 00   */ V(9, 6, 2),    /* 312 */
  1892.   /* 01   */ V(4, 10, 2),
  1893.   /* 10   */ V(10, 4, 2),
  1894.   /* 11   */ V(7, 8, 2),
  1895.  
  1896.   /* 0001 0111 ... */
  1897.   /* 00   */ V(8, 7, 2),    /* 316 */
  1898.   /* 01   */ V(3, 10, 2),
  1899.   /* 10   */ V(10, 3, 1),
  1900.   /* 11   */ V(10, 3, 1),
  1901.  
  1902.   /* 0001 1000 ... */
  1903.   /* 0    */ V(5, 9, 1),    /* 320 */
  1904.   /* 1    */ V(9, 5, 1),
  1905.  
  1906.   /* 0001 1001 ... */
  1907.   /* 0    */ V(2, 10, 1),    /* 322 */
  1908.   /* 1    */ V(10, 2, 1),
  1909.  
  1910.   /* 0001 1010 ... */
  1911.   /* 0    */ V(1, 10, 1),    /* 324 */
  1912.   /* 1    */ V(10, 1, 1),
  1913.  
  1914.   /* 0001 1011 ... */
  1915.   /* 00   */ V(0, 10, 2),    /* 326 */
  1916.   /* 01   */ V(10, 0, 2),
  1917.   /* 10   */ V(6, 8, 1),
  1918.   /* 11   */ V(6, 8, 1),
  1919.  
  1920.   /* 0001 1100 ... */
  1921.   /* 0    */ V(8, 6, 1),    /* 330 */
  1922.   /* 1    */ V(4, 9, 1),
  1923.  
  1924.   /* 0001 1101 ... */
  1925.   /* 0    */ V(9, 4, 1),    /* 332 */
  1926.   /* 1    */ V(3, 9, 1),
  1927.  
  1928.   /* 0001 1110 ... */
  1929.   /* 00   */ V(9, 3, 1),    /* 334 */
  1930.   /* 01   */ V(9, 3, 1),
  1931.   /* 10   */ V(7, 7, 2),
  1932.   /* 11   */ V(0, 9, 2),
  1933.  
  1934.   /* 0001 1111 ... */
  1935.   /* 0    */ V(5, 8, 1),    /* 338 */
  1936.   /* 1    */ V(8, 5, 1),
  1937.  
  1938.   /* 0010 0000 ... */
  1939.   /* 0    */ V(2, 9, 1),    /* 340 */
  1940.   /* 1    */ V(6, 7, 1),
  1941.  
  1942.   /* 0010 0001 ... */
  1943.   /* 0    */ V(7, 6, 1),    /* 342 */
  1944.   /* 1    */ V(9, 2, 1),
  1945.  
  1946.   /* 0010 0011 ... */
  1947.   /* 0    */ V(1, 9, 1),    /* 344 */
  1948.   /* 1    */ V(9, 0, 1),
  1949.  
  1950.   /* 0010 0100 ... */
  1951.   /* 0    */ V(4, 8, 1),    /* 346 */
  1952.   /* 1    */ V(8, 4, 1),
  1953.  
  1954.   /* 0010 0101 ... */
  1955.   /* 0    */ V(5, 7, 1),    /* 348 */
  1956.   /* 1    */ V(7, 5, 1),
  1957.  
  1958.   /* 0010 0110 ... */
  1959.   /* 0    */ V(3, 8, 1),    /* 350 */
  1960.   /* 1    */ V(8, 3, 1),
  1961.  
  1962.   /* 0010 0111 ... */
  1963.   /* 0    */ V(6, 6, 1),    /* 352 */
  1964.   /* 1    */ V(4, 7, 1),
  1965.  
  1966.   /* 0010 1100 ... */
  1967.   /* 0    */ V(7, 4, 1),    /* 354 */
  1968.   /* 1    */ V(0, 8, 1),
  1969.  
  1970.   /* 0010 1101 ... */
  1971.   /* 0    */ V(8, 0, 1),    /* 356 */
  1972.   /* 1    */ V(5, 6, 1),
  1973.  
  1974.   /* 0010 1110 ... */
  1975.   /* 0    */ V(6, 5, 1),    /* 358 */
  1976.   /* 1    */ V(3, 7, 1),
  1977.  
  1978.   /* 0010 1111 ... */
  1979.   /* 0    */ V(7, 3, 1),    /* 360 */
  1980.   /* 1    */ V(4, 6, 1),
  1981.  
  1982.   /* 0011 0110 ... */
  1983.   /* 0    */ V(0, 7, 1),    /* 362 */
  1984.   /* 1    */ V(7, 0, 1),
  1985.  
  1986.   /* 0011 1110 ... */
  1987.   /* 0    */ V(0, 6, 1),    /* 364 */
  1988.   /* 1    */ V(6, 0, 1),
  1989.  
  1990.   /* 0000 0000 0000 ... */
  1991.   /* 0    */ V(15, 15, 1),    /* 366 */
  1992.   /* 1    */ V(14, 15, 1),
  1993.  
  1994.   /* 0000 0000 0001 ... */
  1995.   /* 0    */ V(15, 14, 1),    /* 368 */
  1996.   /* 1    */ V(13, 15, 1),
  1997.  
  1998.   /* 0000 0000 0011 ... */
  1999.   /* 0    */ V(15, 13, 1),    /* 370 */
  2000.   /* 1    */ V(12, 15, 1),
  2001.  
  2002.   /* 0000 0000 0100 ... */
  2003.   /* 0    */ V(15, 12, 1),    /* 372 */
  2004.   /* 1    */ V(13, 14, 1),
  2005.  
  2006.   /* 0000 0000 0101 ... */
  2007.   /* 0    */ V(14, 13, 1),    /* 374 */
  2008.   /* 1    */ V(11, 15, 1),
  2009.  
  2010.   /* 0000 0000 0111 ... */
  2011.   /* 0    */ V(12, 14, 1),    /* 376 */
  2012.   /* 1    */ V(14, 12, 1),
  2013.  
  2014.   /* 0000 0001 1111 ... */
  2015.   /* 0    */ V(10, 14, 1),    /* 378 */
  2016.   /* 1    */ V(0, 15, 1)
  2017. };
  2018.  
  2019. static
  2020. union huffpair const hufftab16[] = {
  2021.   /* 0000 */ PTR(16, 4),
  2022.   /* 0001 */ PTR(32, 4),
  2023.   /* 0010 */ PTR(48, 4),
  2024.   /* 0011 */ PTR(64, 2),
  2025.   /* 0100 */ V(1, 1, 4),
  2026.   /* 0101 */ V(0, 1, 4),
  2027.   /* 0110 */ V(1, 0, 3),
  2028.   /* 0111 */ V(1, 0, 3),
  2029.   /* 1000 */ V(0, 0, 1),
  2030.   /* 1001 */ V(0, 0, 1),
  2031.   /* 1010 */ V(0, 0, 1),
  2032.   /* 1011 */ V(0, 0, 1),
  2033.   /* 1100 */ V(0, 0, 1),
  2034.   /* 1101 */ V(0, 0, 1),
  2035.   /* 1110 */ V(0, 0, 1),
  2036.   /* 1111 */ V(0, 0, 1),
  2037.  
  2038.   /* 0000 ... */
  2039.   /* 0000 */ PTR(68, 3),    /* 16 */
  2040.   /* 0001 */ PTR(76, 3),
  2041.   /* 0010 */ PTR(84, 2),
  2042.   /* 0011 */ V(15, 15, 4),
  2043.   /* 0100 */ PTR(88, 2),
  2044.   /* 0101 */ PTR(92, 1),
  2045.   /* 0110 */ PTR(94, 4),
  2046.   /* 0111 */ V(15, 2, 4),
  2047.   /* 1000 */ PTR(110, 1),
  2048.   /* 1001 */ V(1, 15, 4),
  2049.   /* 1010 */ V(15, 1, 4),
  2050.   /* 1011 */ PTR(112, 4),
  2051.   /* 1100 */ PTR(128, 4),
  2052.   /* 1101 */ PTR(144, 4),
  2053.   /* 1110 */ PTR(160, 4),
  2054.   /* 1111 */ PTR(176, 4),
  2055.  
  2056.   /* 0001 ... */
  2057.   /* 0000 */ PTR(192, 4),    /* 32 */
  2058.   /* 0001 */ PTR(208, 3),
  2059.   /* 0010 */ PTR(216, 3),
  2060.   /* 0011 */ PTR(224, 3),
  2061.   /* 0100 */ PTR(232, 3),
  2062.   /* 0101 */ PTR(240, 3),
  2063.   /* 0110 */ PTR(248, 3),
  2064.   /* 0111 */ PTR(256, 3),
  2065.   /* 1000 */ PTR(264, 2),
  2066.   /* 1001 */ PTR(268, 2),
  2067.   /* 1010 */ PTR(272, 1),
  2068.   /* 1011 */ PTR(274, 2),
  2069.   /* 1100 */ PTR(278, 2),
  2070.   /* 1101 */ PTR(282, 1),
  2071.   /* 1110 */ V(5, 1, 4),
  2072.   /* 1111 */ PTR(284, 1),
  2073.  
  2074.   /* 0010 ... */
  2075.   /* 0000 */ PTR(286, 1),    /* 48 */
  2076.   /* 0001 */ PTR(288, 1),
  2077.   /* 0010 */ PTR(290, 1),
  2078.   /* 0011 */ V(1, 4, 4),
  2079.   /* 0100 */ V(4, 1, 4),
  2080.   /* 0101 */ PTR(292, 1),
  2081.   /* 0110 */ V(2, 3, 4),
  2082.   /* 0111 */ V(3, 2, 4),
  2083.   /* 1000 */ V(1, 3, 3),
  2084.   /* 1001 */ V(1, 3, 3),
  2085.   /* 1010 */ V(3, 1, 3),
  2086.   /* 1011 */ V(3, 1, 3),
  2087.   /* 1100 */ V(0, 3, 4),
  2088.   /* 1101 */ V(3, 0, 4),
  2089.   /* 1110 */ V(2, 2, 3),
  2090.   /* 1111 */ V(2, 2, 3),
  2091.  
  2092.   /* 0011 ... */
  2093.   /* 00   */ V(1, 2, 2),    /* 64 */
  2094.   /* 01   */ V(2, 1, 2),
  2095.   /* 10   */ V(0, 2, 2),
  2096.   /* 11   */ V(2, 0, 2),
  2097.  
  2098.   /* 0000 0000 ... */
  2099.   /* 000  */ V(14, 15, 3),    /* 68 */
  2100.   /* 001  */ V(15, 14, 3),
  2101.   /* 010  */ V(13, 15, 3),
  2102.   /* 011  */ V(15, 13, 3),
  2103.   /* 100  */ V(12, 15, 3),
  2104.   /* 101  */ V(15, 12, 3),
  2105.   /* 110  */ V(11, 15, 3),
  2106.   /* 111  */ V(15, 11, 3),
  2107.  
  2108.   /* 0000 0001 ... */
  2109.   /* 000  */ V(10, 15, 2),    /* 76 */
  2110.   /* 001  */ V(10, 15, 2),
  2111.   /* 010  */ V(15, 10, 3),
  2112.   /* 011  */ V(9, 15, 3),
  2113.   /* 100  */ V(15, 9, 3),
  2114.   /* 101  */ V(15, 8, 3),
  2115.   /* 110  */ V(8, 15, 2),
  2116.   /* 111  */ V(8, 15, 2),
  2117.  
  2118.   /* 0000 0010 ... */
  2119.   /* 00   */ V(7, 15, 2),    /* 84 */
  2120.   /* 01   */ V(15, 7, 2),
  2121.   /* 10   */ V(6, 15, 2),
  2122.   /* 11   */ V(15, 6, 2),
  2123.  
  2124.   /* 0000 0100 ... */
  2125.   /* 00   */ V(5, 15, 2),    /* 88 */
  2126.   /* 01   */ V(15, 5, 2),
  2127.   /* 10   */ V(4, 15, 1),
  2128.   /* 11   */ V(4, 15, 1),
  2129.  
  2130.   /* 0000 0101 ... */
  2131.   /* 0    */ V(15, 4, 1),    /* 92 */
  2132.   /* 1    */ V(15, 3, 1),
  2133.  
  2134.   /* 0000 0110 ... */
  2135.   /* 0000 */ V(15, 0, 1),    /* 94 */
  2136.   /* 0001 */ V(15, 0, 1),
  2137.   /* 0010 */ V(15, 0, 1),
  2138.   /* 0011 */ V(15, 0, 1),
  2139.   /* 0100 */ V(15, 0, 1),
  2140.   /* 0101 */ V(15, 0, 1),
  2141.   /* 0110 */ V(15, 0, 1),
  2142.   /* 0111 */ V(15, 0, 1),
  2143.   /* 1000 */ V(3, 15, 2),
  2144.   /* 1001 */ V(3, 15, 2),
  2145.   /* 1010 */ V(3, 15, 2),
  2146.   /* 1011 */ V(3, 15, 2),
  2147.   /* 1100 */ PTR(294, 4),
  2148.   /* 1101 */ PTR(310, 3),
  2149.   /* 1110 */ PTR(318, 3),
  2150.   /* 1111 */ PTR(326, 3),
  2151.  
  2152.   /* 0000 1000 ... */
  2153.   /* 0    */ V(2, 15, 1),    /* 110 */
  2154.   /* 1    */ V(0, 15, 1),
  2155.  
  2156.   /* 0000 1011 ... */
  2157.   /* 0000 */ PTR(334, 2),    /* 112 */
  2158.   /* 0001 */ PTR(338, 2),
  2159.   /* 0010 */ PTR(342, 2),
  2160.   /* 0011 */ PTR(346, 1),
  2161.   /* 0100 */ PTR(348, 2),
  2162.   /* 0101 */ PTR(352, 2),
  2163.   /* 0110 */ PTR(356, 1),
  2164.   /* 0111 */ PTR(358, 2),
  2165.   /* 1000 */ PTR(362, 2),
  2166.   /* 1001 */ PTR(366, 2),
  2167.   /* 1010 */ PTR(370, 2),
  2168.   /* 1011 */ V(14, 3, 4),
  2169.   /* 1100 */ PTR(374, 1),
  2170.   /* 1101 */ PTR(376, 1),
  2171.   /* 1110 */ PTR(378, 1),
  2172.   /* 1111 */ PTR(380, 1),
  2173.  
  2174.   /* 0000 1100 ... */
  2175.   /* 0000 */ PTR(382, 1),    /* 128 */
  2176.   /* 0001 */ PTR(384, 1),
  2177.   /* 0010 */ PTR(386, 1),
  2178.   /* 0011 */ V(0, 13, 4),
  2179.   /* 0100 */ PTR(388, 1),
  2180.   /* 0101 */ PTR(390, 1),
  2181.   /* 0110 */ PTR(392, 1),
  2182.   /* 0111 */ V(3, 12, 4),
  2183.   /* 1000 */ PTR(394, 1),
  2184.   /* 1001 */ V(1, 12, 4),
  2185.   /* 1010 */ V(12, 0, 4),
  2186.   /* 1011 */ PTR(396, 1),
  2187.   /* 1100 */ V(14, 2, 3),
  2188.   /* 1101 */ V(14, 2, 3),
  2189.   /* 1110 */ V(2, 14, 4),
  2190.   /* 1111 */ V(1, 14, 4),
  2191.  
  2192.   /* 0000 1101 ... */
  2193.   /* 0000 */ V(13, 3, 4),    /* 144 */
  2194.   /* 0001 */ V(2, 13, 4),
  2195.   /* 0010 */ V(13, 2, 4),
  2196.   /* 0011 */ V(13, 1, 4),
  2197.   /* 0100 */ V(3, 11, 4),
  2198.   /* 0101 */ PTR(398, 1),
  2199.   /* 0110 */ V(1, 13, 3),
  2200.   /* 0111 */ V(1, 13, 3),
  2201.   /* 1000 */ V(12, 4, 4),
  2202.   /* 1001 */ V(6, 11, 4),
  2203.   /* 1010 */ V(12, 3, 4),
  2204.   /* 1011 */ V(10, 7, 4),
  2205.   /* 1100 */ V(2, 12, 3),
  2206.   /* 1101 */ V(2, 12, 3),
  2207.   /* 1110 */ V(12, 2, 4),
  2208.   /* 1111 */ V(11, 5, 4),
  2209.  
  2210.   /* 0000 1110 ... */
  2211.   /* 0000 */ V(12, 1, 4),    /* 160 */
  2212.   /* 0001 */ V(0, 12, 4),
  2213.   /* 0010 */ V(4, 11, 4),
  2214.   /* 0011 */ V(11, 4, 4),
  2215.   /* 0100 */ V(6, 10, 4),
  2216.   /* 0101 */ V(10, 6, 4),
  2217.   /* 0110 */ V(11, 3, 3),
  2218.   /* 0111 */ V(11, 3, 3),
  2219.   /* 1000 */ V(5, 10, 4),
  2220.   /* 1001 */ V(10, 5, 4),
  2221.   /* 1010 */ V(2, 11, 3),
  2222.   /* 1011 */ V(2, 11, 3),
  2223.   /* 1100 */ V(11, 2, 3),
  2224.   /* 1101 */ V(11, 2, 3),
  2225.   /* 1110 */ V(1, 11, 3),
  2226.   /* 1111 */ V(1, 11, 3),
  2227.  
  2228.   /* 0000 1111 ... */
  2229.   /* 0000 */ V(11, 1, 3),    /* 176 */
  2230.   /* 0001 */ V(11, 1, 3),
  2231.   /* 0010 */ V(0, 11, 4),
  2232.   /* 0011 */ V(11, 0, 4),
  2233.   /* 0100 */ V(6, 9, 4),
  2234.   /* 0101 */ V(9, 6, 4),
  2235.   /* 0110 */ V(4, 10, 4),
  2236.   /* 0111 */ V(10, 4, 4),
  2237.   /* 1000 */ V(7, 8, 4),
  2238.   /* 1001 */ V(8, 7, 4),
  2239.   /* 1010 */ V(10, 3, 3),
  2240.   /* 1011 */ V(10, 3, 3),
  2241.   /* 1100 */ V(3, 10, 4),
  2242.   /* 1101 */ V(5, 9, 4),
  2243.   /* 1110 */ V(2, 10, 3),
  2244.   /* 1111 */ V(2, 10, 3),
  2245.  
  2246.   /* 0001 0000 ... */
  2247.   /* 0000 */ V(9, 5, 4),    /* 192 */
  2248.   /* 0001 */ V(6, 8, 4),
  2249.   /* 0010 */ V(10, 1, 3),
  2250.   /* 0011 */ V(10, 1, 3),
  2251.   /* 0100 */ V(8, 6, 4),
  2252.   /* 0101 */ V(7, 7, 4),
  2253.   /* 0110 */ V(9, 4, 3),
  2254.   /* 0111 */ V(9, 4, 3),
  2255.   /* 1000 */ V(4, 9, 4),
  2256.   /* 1001 */ V(5, 7, 4),
  2257.   /* 1010 */ V(6, 7, 3),
  2258.   /* 1011 */ V(6, 7, 3),
  2259.   /* 1100 */ V(10, 2, 2),
  2260.   /* 1101 */ V(10, 2, 2),
  2261.   /* 1110 */ V(10, 2, 2),
  2262.   /* 1111 */ V(10, 2, 2),
  2263.  
  2264.   /* 0001 0001 ... */
  2265.   /* 000  */ V(1, 10, 2),    /* 208 */
  2266.   /* 001  */ V(1, 10, 2),
  2267.   /* 010  */ V(0, 10, 3),
  2268.   /* 011  */ V(10, 0, 3),
  2269.   /* 100  */ V(3, 9, 3),
  2270.   /* 101  */ V(9, 3, 3),
  2271.   /* 110  */ V(5, 8, 3),
  2272.   /* 111  */ V(8, 5, 3),
  2273.  
  2274.   /* 0001 0010 ... */
  2275.   /* 000  */ V(2, 9, 2),    /* 216 */
  2276.   /* 001  */ V(2, 9, 2),
  2277.   /* 010  */ V(9, 2, 2),
  2278.   /* 011  */ V(9, 2, 2),
  2279.   /* 100  */ V(7, 6, 3),
  2280.   /* 101  */ V(0, 9, 3),
  2281.   /* 110  */ V(1, 9, 2),
  2282.   /* 111  */ V(1, 9, 2),
  2283.  
  2284.   /* 0001 0011 ... */
  2285.   /* 000  */ V(9, 1, 2),    /* 224 */
  2286.   /* 001  */ V(9, 1, 2),
  2287.   /* 010  */ V(9, 0, 3),
  2288.   /* 011  */ V(4, 8, 3),
  2289.   /* 100  */ V(8, 4, 3),
  2290.   /* 101  */ V(7, 5, 3),
  2291.   /* 110  */ V(3, 8, 3),
  2292.   /* 111  */ V(8, 3, 3),
  2293.  
  2294.   /* 0001 0100 ... */
  2295.   /* 000  */ V(6, 6, 3),    /* 232 */
  2296.   /* 001  */ V(2, 8, 3),
  2297.   /* 010  */ V(8, 2, 2),
  2298.   /* 011  */ V(8, 2, 2),
  2299.   /* 100  */ V(4, 7, 3),
  2300.   /* 101  */ V(7, 4, 3),
  2301.   /* 110  */ V(1, 8, 2),
  2302.   /* 111  */ V(1, 8, 2),
  2303.  
  2304.   /* 0001 0101 ... */
  2305.   /* 000  */ V(8, 1, 2),    /* 240 */
  2306.   /* 001  */ V(8, 1, 2),
  2307.   /* 010  */ V(8, 0, 2),
  2308.   /* 011  */ V(8, 0, 2),
  2309.   /* 100  */ V(0, 8, 3),
  2310.   /* 101  */ V(5, 6, 3),
  2311.   /* 110  */ V(3, 7, 2),
  2312.   /* 111  */ V(3, 7, 2),
  2313.  
  2314.   /* 0001 0110 ... */
  2315.   /* 000  */ V(7, 3, 2),    /* 248 */
  2316.   /* 001  */ V(7, 3, 2),
  2317.   /* 010  */ V(6, 5, 3),
  2318.   /* 011  */ V(4, 6, 3),
  2319.   /* 100  */ V(2, 7, 2),
  2320.   /* 101  */ V(2, 7, 2),
  2321.   /* 110  */ V(7, 2, 2),
  2322.   /* 111  */ V(7, 2, 2),
  2323.  
  2324.   /* 0001 0111 ... */
  2325.   /* 000  */ V(6, 4, 3),    /* 256 */
  2326.   /* 001  */ V(5, 5, 3),
  2327.   /* 010  */ V(0, 7, 2),
  2328.   /* 011  */ V(0, 7, 2),
  2329.   /* 100  */ V(1, 7, 1),
  2330.   /* 101  */ V(1, 7, 1),
  2331.   /* 110  */ V(1, 7, 1),
  2332.   /* 111  */ V(1, 7, 1),
  2333.  
  2334.   /* 0001 1000 ... */
  2335.   /* 00   */ V(7, 1, 1),    /* 264  */
  2336.   /* 01   */ V(7, 1, 1),
  2337.   /* 10   */ V(7, 0, 2),
  2338.   /* 11   */ V(3, 6, 2),
  2339.  
  2340.   /* 0001 1001 ... */
  2341.   /* 00   */ V(6, 3, 2),    /* 268 */
  2342.   /* 01   */ V(4, 5, 2),
  2343.   /* 10   */ V(5, 4, 2),
  2344.   /* 11   */ V(2, 6, 2),
  2345.  
  2346.   /* 0001 1010 ... */
  2347.   /* 0    */ V(6, 2, 1),    /* 272 */
  2348.   /* 1    */ V(1, 6, 1),
  2349.  
  2350.   /* 0001 1011 ... */
  2351.   /* 00   */ V(6, 1, 1),    /* 274 */
  2352.   /* 01   */ V(6, 1, 1),
  2353.   /* 10   */ V(0, 6, 2),
  2354.   /* 11   */ V(6, 0, 2),
  2355.  
  2356.   /* 0001 1100 ... */
  2357.   /* 00   */ V(5, 3, 1),    /* 278 */
  2358.   /* 01   */ V(5, 3, 1),
  2359.   /* 10   */ V(3, 5, 2),
  2360.   /* 11   */ V(4, 4, 2),
  2361.  
  2362.   /* 0001 1101 ... */
  2363.   /* 0    */ V(2, 5, 1),    /* 282 */
  2364.   /* 1    */ V(5, 2, 1),
  2365.  
  2366.   /* 0001 1111 ... */
  2367.   /* 0    */ V(1, 5, 1),    /* 284 */
  2368.   /* 1    */ V(0, 5, 1),
  2369.  
  2370.   /* 0010 0000 ... */
  2371.   /* 0    */ V(3, 4, 1),    /* 286 */
  2372.   /* 1    */ V(4, 3, 1),
  2373.  
  2374.   /* 0010 0001 ... */
  2375.   /* 0    */ V(5, 0, 1),    /* 288 */
  2376.   /* 1    */ V(2, 4, 1),
  2377.  
  2378.   /* 0010 0010 ... */
  2379.   /* 0    */ V(4, 2, 1),    /* 290 */
  2380.   /* 1    */ V(3, 3, 1),
  2381.  
  2382.   /* 0010 0101 ... */
  2383.   /* 0    */ V(0, 4, 1),    /* 292 */
  2384.   /* 1    */ V(4, 0, 1),
  2385.  
  2386.   /* 0000 0110 1100 ... */
  2387.   /* 0000 */ V(12, 14, 4),    /* 294 */
  2388.   /* 0001 */ PTR(400, 1),
  2389.   /* 0010 */ V(13, 14, 3),
  2390.   /* 0011 */ V(13, 14, 3),
  2391.   /* 0100 */ V(14, 9, 3),
  2392.   /* 0101 */ V(14, 9, 3),
  2393.   /* 0110 */ V(14, 10, 4),
  2394.   /* 0111 */ V(13, 9, 4),
  2395.   /* 1000 */ V(14, 14, 2),
  2396.   /* 1001 */ V(14, 14, 2),
  2397.   /* 1010 */ V(14, 14, 2),
  2398.   /* 1011 */ V(14, 14, 2),
  2399.   /* 1100 */ V(14, 13, 3),
  2400.   /* 1101 */ V(14, 13, 3),
  2401.   /* 1110 */ V(14, 11, 3),
  2402.   /* 1111 */ V(14, 11, 3),
  2403.  
  2404.   /* 0000 0110 1101 ... */
  2405.   /* 000  */ V(11, 14, 2),    /* 310 */
  2406.   /* 001  */ V(11, 14, 2),
  2407.   /* 010  */ V(12, 13, 2),
  2408.   /* 011  */ V(12, 13, 2),
  2409.   /* 100  */ V(13, 12, 3),
  2410.   /* 101  */ V(13, 11, 3),
  2411.   /* 110  */ V(10, 14, 2),
  2412.   /* 111  */ V(10, 14, 2),
  2413.  
  2414.   /* 0000 0110 1110 ... */
  2415.   /* 000  */ V(12, 12, 2),    /* 318 */
  2416.   /* 001  */ V(12, 12, 2),
  2417.   /* 010  */ V(10, 13, 3),
  2418.   /* 011  */ V(13, 10, 3),
  2419.   /* 100  */ V(7, 14, 3),
  2420.   /* 101  */ V(10, 12, 3),
  2421.   /* 110  */ V(12, 10, 2),
  2422.   /* 111  */ V(12, 10, 2),
  2423.  
  2424.   /* 0000 0110 1111 ... */
  2425.   /* 000  */ V(12, 9, 3),    /* 326 */
  2426.   /* 001  */ V(7, 13, 3),
  2427.   /* 010  */ V(5, 14, 2),
  2428.   /* 011  */ V(5, 14, 2),
  2429.   /* 100  */ V(11, 13, 1),
  2430.   /* 101  */ V(11, 13, 1),
  2431.   /* 110  */ V(11, 13, 1),
  2432.   /* 111  */ V(11, 13, 1),
  2433.  
  2434.   /* 0000 1011 0000 ... */
  2435.   /* 00   */ V(9, 14, 1),    /* 334 */
  2436.   /* 01   */ V(9, 14, 1),
  2437.   /* 10   */ V(11, 12, 2),
  2438.   /* 11   */ V(12, 11, 2),
  2439.  
  2440.   /* 0000 1011 0001 ... */
  2441.   /* 00   */ V(8, 14, 2),    /* 338 */
  2442.   /* 01   */ V(14, 8, 2),
  2443.   /* 10   */ V(9, 13, 2),
  2444.   /* 11   */ V(14, 7, 2),
  2445.  
  2446.   /* 0000 1011 0010 ... */
  2447.   /* 00   */ V(11, 11, 2),    /* 342 */
  2448.   /* 01   */ V(8, 13, 2),
  2449.   /* 10   */ V(13, 8, 2),
  2450.   /* 11   */ V(6, 14, 2),
  2451.  
  2452.   /* 0000 1011 0011 ... */
  2453.   /* 0    */ V(14, 6, 1),    /* 346 */
  2454.   /* 1    */ V(9, 12, 1),
  2455.  
  2456.   /* 0000 1011 0100 ... */
  2457.   /* 00   */ V(10, 11, 2),    /* 348 */
  2458.   /* 01   */ V(11, 10, 2),
  2459.   /* 10   */ V(14, 5, 2),
  2460.   /* 11   */ V(13, 7, 2),
  2461.  
  2462.   /* 0000 1011 0101 ... */
  2463.   /* 00   */ V(4, 14, 1),    /* 352 */
  2464.   /* 01   */ V(4, 14, 1),
  2465.   /* 10   */ V(14, 4, 2),
  2466.   /* 11   */ V(8, 12, 2),
  2467.  
  2468.   /* 0000 1011 0110 ... */
  2469.   /* 0    */ V(12, 8, 1),    /* 356 */
  2470.   /* 1    */ V(3, 14, 1),
  2471.  
  2472.   /* 0000 1011 0111 ... */
  2473.   /* 00   */ V(6, 13, 1),    /* 358 */
  2474.   /* 01   */ V(6, 13, 1),
  2475.   /* 10   */ V(13, 6, 2),
  2476.   /* 11   */ V(9, 11, 2),
  2477.  
  2478.   /* 0000 1011 1000 ... */
  2479.   /* 00   */ V(11, 9, 2),    /* 362 */
  2480.   /* 01   */ V(10, 10, 2),
  2481.   /* 10   */ V(14, 1, 1),
  2482.   /* 11   */ V(14, 1, 1),
  2483.  
  2484.   /* 0000 1011 1001 ... */
  2485.   /* 00   */ V(13, 4, 1),    /* 366 */
  2486.   /* 01   */ V(13, 4, 1),
  2487.   /* 10   */ V(11, 8, 2),
  2488.   /* 11   */ V(10, 9, 2),
  2489.  
  2490.   /* 0000 1011 1010 ... */
  2491.   /* 00   */ V(7, 11, 1),    /* 370 */
  2492.   /* 01   */ V(7, 11, 1),
  2493.   /* 10   */ V(11, 7, 2),
  2494.   /* 11   */ V(13, 0, 2),
  2495.  
  2496.   /* 0000 1011 1100 ... */
  2497.   /* 0    */ V(0, 14, 1),    /* 374 */
  2498.   /* 1    */ V(14, 0, 1),
  2499.  
  2500.   /* 0000 1011 1101 ... */
  2501.   /* 0    */ V(5, 13, 1),    /* 376 */
  2502.   /* 1    */ V(13, 5, 1),
  2503.  
  2504.   /* 0000 1011 1110 ... */
  2505.   /* 0    */ V(7, 12, 1),    /* 378 */
  2506.   /* 1    */ V(12, 7, 1),
  2507.  
  2508.   /* 0000 1011 1111 ... */
  2509.   /* 0    */ V(4, 13, 1),    /* 380 */
  2510.   /* 1    */ V(8, 11, 1),
  2511.  
  2512.   /* 0000 1100 0000 ... */
  2513.   /* 0    */ V(9, 10, 1),    /* 382 */
  2514.   /* 1    */ V(6, 12, 1),
  2515.  
  2516.   /* 0000 1100 0001 ... */
  2517.   /* 0    */ V(12, 6, 1),    /* 384 */
  2518.   /* 1    */ V(3, 13, 1),
  2519.  
  2520.   /* 0000 1100 0010 ... */
  2521.   /* 0    */ V(5, 12, 1),    /* 386 */
  2522.   /* 1    */ V(12, 5, 1),
  2523.  
  2524.   /* 0000 1100 0100 ... */
  2525.   /* 0    */ V(8, 10, 1),    /* 388 */
  2526.   /* 1    */ V(10, 8, 1),
  2527.  
  2528.   /* 0000 1100 0101 ... */
  2529.   /* 0    */ V(9, 9, 1),    /* 390 */
  2530.   /* 1    */ V(4, 12, 1),
  2531.  
  2532.   /* 0000 1100 0110 ... */
  2533.   /* 0    */ V(11, 6, 1),    /* 392 */
  2534.   /* 1    */ V(7, 10, 1),
  2535.  
  2536.   /* 0000 1100 1000 ... */
  2537.   /* 0    */ V(5, 11, 1),    /* 394 */
  2538.   /* 1    */ V(8, 9, 1),
  2539.  
  2540.   /* 0000 1100 1011 ... */
  2541.   /* 0    */ V(9, 8, 1),    /* 396 */
  2542.   /* 1    */ V(7, 9, 1),
  2543.  
  2544.   /* 0000 1101 0101 ... */
  2545.   /* 0    */ V(9, 7, 1),    /* 398 */
  2546.   /* 1    */ V(8, 8, 1),
  2547.  
  2548.   /* 0000 0110 1100 0001 ... */
  2549.   /* 0    */ V(14, 12, 1),    /* 400 */
  2550.   /* 1    */ V(13, 13, 1)
  2551. };
  2552.  
  2553. static
  2554. union huffpair const hufftab24[] = {
  2555.   /* 0000 */ PTR(16, 4),
  2556.   /* 0001 */ PTR(32, 4),
  2557.   /* 0010 */ PTR(48, 4),
  2558.   /* 0011 */ V(15, 15, 4),
  2559.   /* 0100 */ PTR(64, 4),
  2560.   /* 0101 */ PTR(80, 4),
  2561.   /* 0110 */ PTR(96, 4),
  2562.   /* 0111 */ PTR(112, 4),
  2563.   /* 1000 */ PTR(128, 4),
  2564.   /* 1001 */ PTR(144, 4),
  2565.   /* 1010 */ PTR(160, 3),
  2566.   /* 1011 */ PTR(168, 2),
  2567.   /* 1100 */ V(1, 1, 4),
  2568.   /* 1101 */ V(0, 1, 4),
  2569.   /* 1110 */ V(1, 0, 4),
  2570.   /* 1111 */ V(0, 0, 4),
  2571.  
  2572.   /* 0000 ... */
  2573.   /* 0000 */ V(14, 15, 4),    /* 16 */
  2574.   /* 0001 */ V(15, 14, 4),
  2575.   /* 0010 */ V(13, 15, 4),
  2576.   /* 0011 */ V(15, 13, 4),
  2577.   /* 0100 */ V(12, 15, 4),
  2578.   /* 0101 */ V(15, 12, 4),
  2579.   /* 0110 */ V(11, 15, 4),
  2580.   /* 0111 */ V(15, 11, 4),
  2581.   /* 1000 */ V(15, 10, 3),
  2582.   /* 1001 */ V(15, 10, 3),
  2583.   /* 1010 */ V(10, 15, 4),
  2584.   /* 1011 */ V(9, 15, 4),
  2585.   /* 1100 */ V(15, 9, 3),
  2586.   /* 1101 */ V(15, 9, 3),
  2587.   /* 1110 */ V(15, 8, 3),
  2588.   /* 1111 */ V(15, 8, 3),
  2589.  
  2590.   /* 0001 ... */
  2591.   /* 0000 */ V(8, 15, 4),    /* 32 */
  2592.   /* 0001 */ V(7, 15, 4),
  2593.   /* 0010 */ V(15, 7, 3),
  2594.   /* 0011 */ V(15, 7, 3),
  2595.   /* 0100 */ V(6, 15, 3),
  2596.   /* 0101 */ V(6, 15, 3),
  2597.   /* 0110 */ V(15, 6, 3),
  2598.   /* 0111 */ V(15, 6, 3),
  2599.   /* 1000 */ V(5, 15, 3),
  2600.   /* 1001 */ V(5, 15, 3),
  2601.   /* 1010 */ V(15, 5, 3),
  2602.   /* 1011 */ V(15, 5, 3),
  2603.   /* 1100 */ V(4, 15, 3),
  2604.   /* 1101 */ V(4, 15, 3),
  2605.   /* 1110 */ V(15, 4, 3),
  2606.   /* 1111 */ V(15, 4, 3),
  2607.  
  2608.   /* 0010 ... */
  2609.   /* 0000 */ V(3, 15, 3),    /* 48 */
  2610.   /* 0001 */ V(3, 15, 3),
  2611.   /* 0010 */ V(15, 3, 3),
  2612.   /* 0011 */ V(15, 3, 3),
  2613.   /* 0100 */ V(2, 15, 3),
  2614.   /* 0101 */ V(2, 15, 3),
  2615.   /* 0110 */ V(15, 2, 3),
  2616.   /* 0111 */ V(15, 2, 3),
  2617.   /* 1000 */ V(15, 1, 3),
  2618.   /* 1001 */ V(15, 1, 3),
  2619.   /* 1010 */ V(1, 15, 4),
  2620.   /* 1011 */ V(15, 0, 4),
  2621.   /* 1100 */ PTR(172, 3),
  2622.   /* 1101 */ PTR(180, 3),
  2623.   /* 1110 */ PTR(188, 3),
  2624.   /* 1111 */ PTR(196, 3),
  2625.  
  2626.   /* 0100 ... */
  2627.   /* 0000 */ PTR(204, 4),    /* 64 */
  2628.   /* 0001 */ PTR(220, 3),
  2629.   /* 0010 */ PTR(228, 3),
  2630.   /* 0011 */ PTR(236, 3),
  2631.   /* 0100 */ PTR(244, 2),
  2632.   /* 0101 */ PTR(248, 2),
  2633.   /* 0110 */ PTR(252, 2),
  2634.   /* 0111 */ PTR(256, 2),
  2635.   /* 1000 */ PTR(260, 2),
  2636.   /* 1001 */ PTR(264, 2),
  2637.   /* 1010 */ PTR(268, 2),
  2638.   /* 1011 */ PTR(272, 2),
  2639.   /* 1100 */ PTR(276, 2),
  2640.   /* 1101 */ PTR(280, 3),
  2641.   /* 1110 */ PTR(288, 2),
  2642.   /* 1111 */ PTR(292, 2),
  2643.  
  2644.   /* 0101 ... */
  2645.   /* 0000 */ PTR(296, 2),    /* 80 */
  2646.   /* 0001 */ PTR(300, 3),
  2647.   /* 0010 */ PTR(308, 2),
  2648.   /* 0011 */ PTR(312, 3),
  2649.   /* 0100 */ PTR(320, 1),
  2650.   /* 0101 */ PTR(322, 2),
  2651.   /* 0110 */ PTR(326, 2),
  2652.   /* 0111 */ PTR(330, 1),
  2653.   /* 1000 */ PTR(332, 2),
  2654.   /* 1001 */ PTR(336, 1),
  2655.   /* 1010 */ PTR(338, 1),
  2656.   /* 1011 */ PTR(340, 1),
  2657.   /* 1100 */ PTR(342, 1),
  2658.   /* 1101 */ PTR(344, 1),
  2659.   /* 1110 */ PTR(346, 1),
  2660.   /* 1111 */ PTR(348, 1),
  2661.  
  2662.   /* 0110 ... */
  2663.   /* 0000 */ PTR(350, 1),    /* 96 */
  2664.   /* 0001 */ PTR(352, 1),
  2665.   /* 0010 */ PTR(354, 1),
  2666.   /* 0011 */ PTR(356, 1),
  2667.   /* 0100 */ PTR(358, 1),
  2668.   /* 0101 */ PTR(360, 1),
  2669.   /* 0110 */ PTR(362, 1),
  2670.   /* 0111 */ PTR(364, 1),
  2671.   /* 1000 */ PTR(366, 1),
  2672.   /* 1001 */ PTR(368, 1),
  2673.   /* 1010 */ PTR(370, 2),
  2674.   /* 1011 */ PTR(374, 1),
  2675.   /* 1100 */ PTR(376, 2),
  2676.   /* 1101 */ V(7, 3, 4),
  2677.   /* 1110 */ PTR(380, 1),
  2678.   /* 1111 */ V(7, 2, 4),
  2679.  
  2680.   /* 0111 ... */
  2681.   /* 0000 */ V(4, 6, 4),    /* 112 */
  2682.   /* 0001 */ V(6, 4, 4),
  2683.   /* 0010 */ V(5, 5, 4),
  2684.   /* 0011 */ V(7, 1, 4),
  2685.   /* 0100 */ V(3, 6, 4),
  2686.   /* 0101 */ V(6, 3, 4),
  2687.   /* 0110 */ V(4, 5, 4),
  2688.   /* 0111 */ V(5, 4, 4),
  2689.   /* 1000 */ V(2, 6, 4),
  2690.   /* 1001 */ V(6, 2, 4),
  2691.   /* 1010 */ V(1, 6, 4),
  2692.   /* 1011 */ V(6, 1, 4),
  2693.   /* 1100 */ PTR(382, 1),
  2694.   /* 1101 */ V(3, 5, 4),
  2695.   /* 1110 */ V(5, 3, 4),
  2696.   /* 1111 */ V(4, 4, 4),
  2697.  
  2698.   /* 1000 ... */
  2699.   /* 0000 */ V(2, 5, 4),    /* 128 */
  2700.   /* 0001 */ V(5, 2, 4),
  2701.   /* 0010 */ V(1, 5, 4),
  2702.   /* 0011 */ PTR(384, 1),
  2703.   /* 0100 */ V(5, 1, 3),
  2704.   /* 0101 */ V(5, 1, 3),
  2705.   /* 0110 */ V(3, 4, 4),
  2706.   /* 0111 */ V(4, 3, 4),
  2707.   /* 1000 */ V(2, 4, 3),
  2708.   /* 1001 */ V(2, 4, 3),
  2709.   /* 1010 */ V(4, 2, 3),
  2710.   /* 1011 */ V(4, 2, 3),
  2711.   /* 1100 */ V(3, 3, 3),
  2712.   /* 1101 */ V(3, 3, 3),
  2713.   /* 1110 */ V(1, 4, 3),
  2714.   /* 1111 */ V(1, 4, 3),
  2715.  
  2716.   /* 1001 ... */
  2717.   /* 0000 */ V(4, 1, 3),    /* 144 */
  2718.   /* 0001 */ V(4, 1, 3),
  2719.   /* 0010 */ V(0, 4, 4),
  2720.   /* 0011 */ V(4, 0, 4),
  2721.   /* 0100 */ V(2, 3, 3),
  2722.   /* 0101 */ V(2, 3, 3),
  2723.   /* 0110 */ V(3, 2, 3),
  2724.   /* 0111 */ V(3, 2, 3),
  2725.   /* 1000 */ V(1, 3, 2),
  2726.   /* 1001 */ V(1, 3, 2),
  2727.   /* 1010 */ V(1, 3, 2),
  2728.   /* 1011 */ V(1, 3, 2),
  2729.   /* 1100 */ V(3, 1, 2),
  2730.   /* 1101 */ V(3, 1, 2),
  2731.   /* 1110 */ V(3, 1, 2),
  2732.   /* 1111 */ V(3, 1, 2),
  2733.  
  2734.   /* 1010 ... */
  2735.   /* 000  */ V(0, 3, 3),    /* 160 */
  2736.   /* 001  */ V(3, 0, 3),
  2737.   /* 010  */ V(2, 2, 2),
  2738.   /* 011  */ V(2, 2, 2),
  2739.   /* 100  */ V(1, 2, 1),
  2740.   /* 101  */ V(1, 2, 1),
  2741.   /* 110  */ V(1, 2, 1),
  2742.   /* 111  */ V(1, 2, 1),
  2743.  
  2744.   /* 1011 ... */
  2745.   /* 00   */ V(2, 1, 1),    /* 168 */
  2746.   /* 01   */ V(2, 1, 1),
  2747.   /* 10   */ V(0, 2, 2),
  2748.   /* 11   */ V(2, 0, 2),
  2749.  
  2750.   /* 0010 1100 ... */
  2751.   /* 000  */ V(0, 15, 1),    /* 172 */
  2752.   /* 001  */ V(0, 15, 1),
  2753.   /* 010  */ V(0, 15, 1),
  2754.   /* 011  */ V(0, 15, 1),
  2755.   /* 100  */ V(14, 14, 3),
  2756.   /* 101  */ V(13, 14, 3),
  2757.   /* 110  */ V(14, 13, 3),
  2758.   /* 111  */ V(12, 14, 3),
  2759.  
  2760.   /* 0010 1101 ... */
  2761.   /* 000  */ V(14, 12, 3),    /* 180 */
  2762.   /* 001  */ V(13, 13, 3),
  2763.   /* 010  */ V(11, 14, 3),
  2764.   /* 011  */ V(14, 11, 3),
  2765.   /* 100  */ V(12, 13, 3),
  2766.   /* 101  */ V(13, 12, 3),
  2767.   /* 110  */ V(10, 14, 3),
  2768.   /* 111  */ V(14, 10, 3),
  2769.  
  2770.   /* 0010 1110 ... */
  2771.   /* 000  */ V(11, 13, 3),    /* 188 */
  2772.   /* 001  */ V(13, 11, 3),
  2773.   /* 010  */ V(12, 12, 3),
  2774.   /* 011  */ V(9, 14, 3),
  2775.   /* 100  */ V(14, 9, 3),
  2776.   /* 101  */ V(10, 13, 3),
  2777.   /* 110  */ V(13, 10, 3),
  2778.   /* 111  */ V(11, 12, 3),
  2779.  
  2780.   /* 0010 1111 ... */
  2781.   /* 000  */ V(12, 11, 3),    /* 196 */
  2782.   /* 001  */ V(8, 14, 3),
  2783.   /* 010  */ V(14, 8, 3),
  2784.   /* 011  */ V(9, 13, 3),
  2785.   /* 100  */ V(13, 9, 3),
  2786.   /* 101  */ V(7, 14, 3),
  2787.   /* 110  */ V(14, 7, 3),
  2788.   /* 111  */ V(10, 12, 3),
  2789.  
  2790.   /* 0100 0000 ... */
  2791.   /* 0000 */ V(12, 10, 3),    /* 204 */
  2792.   /* 0001 */ V(12, 10, 3),
  2793.   /* 0010 */ V(11, 11, 3),
  2794.   /* 0011 */ V(11, 11, 3),
  2795.   /* 0100 */ V(8, 13, 3),
  2796.   /* 0101 */ V(8, 13, 3),
  2797.   /* 0110 */ V(13, 8, 3),
  2798.   /* 0111 */ V(13, 8, 3),
  2799.   /* 1000 */ V(0, 14, 4),
  2800.   /* 1001 */ V(14, 0, 4),
  2801.   /* 1010 */ V(0, 13, 3),
  2802.   /* 1011 */ V(0, 13, 3),
  2803.   /* 1100 */ V(14, 6, 2),
  2804.   /* 1101 */ V(14, 6, 2),
  2805.   /* 1110 */ V(14, 6, 2),
  2806.   /* 1111 */ V(14, 6, 2),
  2807.  
  2808.   /* 0100 0001 ... */
  2809.   /* 000  */ V(6, 14, 3),    /* 220 */
  2810.   /* 001  */ V(9, 12, 3),
  2811.   /* 010  */ V(12, 9, 2),
  2812.   /* 011  */ V(12, 9, 2),
  2813.   /* 100  */ V(5, 14, 2),
  2814.   /* 101  */ V(5, 14, 2),
  2815.   /* 110  */ V(11, 10, 2),
  2816.   /* 111  */ V(11, 10, 2),
  2817.  
  2818.   /* 0100 0010 ... */
  2819.   /* 000  */ V(14, 5, 2),    /* 228 */
  2820.   /* 001  */ V(14, 5, 2),
  2821.   /* 010  */ V(10, 11, 3),
  2822.   /* 011  */ V(7, 13, 3),
  2823.   /* 100  */ V(13, 7, 2),
  2824.   /* 101  */ V(13, 7, 2),
  2825.   /* 110  */ V(14, 4, 2),
  2826.   /* 111  */ V(14, 4, 2),
  2827.  
  2828.   /* 0100 0011 ... */
  2829.   /* 000  */ V(8, 12, 2),    /* 236 */
  2830.   /* 001  */ V(8, 12, 2),
  2831.   /* 010  */ V(12, 8, 2),
  2832.   /* 011  */ V(12, 8, 2),
  2833.   /* 100  */ V(4, 14, 3),
  2834.   /* 101  */ V(2, 14, 3),
  2835.   /* 110  */ V(3, 14, 2),
  2836.   /* 111  */ V(3, 14, 2),
  2837.  
  2838.   /* 0100 0100 ... */
  2839.   /* 00   */ V(6, 13, 2),    /* 244 */
  2840.   /* 01   */ V(13, 6, 2),
  2841.   /* 10   */ V(14, 3, 2),
  2842.   /* 11   */ V(9, 11, 2),
  2843.  
  2844.   /* 0100 0101 ... */
  2845.   /* 00   */ V(11, 9, 2),    /* 248 */
  2846.   /* 01   */ V(10, 10, 2),
  2847.   /* 10   */ V(14, 2, 2),
  2848.   /* 11   */ V(1, 14, 2),
  2849.  
  2850.   /* 0100 0110 ... */
  2851.   /* 00   */ V(14, 1, 2),    /* 252 */
  2852.   /* 01   */ V(5, 13, 2),
  2853.   /* 10   */ V(13, 5, 2),
  2854.   /* 11   */ V(7, 12, 2),
  2855.  
  2856.   /* 0100 0111 ... */
  2857.   /* 00   */ V(12, 7, 2),    /* 256 */
  2858.   /* 01   */ V(4, 13, 2),
  2859.   /* 10   */ V(8, 11, 2),
  2860.   /* 11   */ V(11, 8, 2),
  2861.  
  2862.   /* 0100 1000 ... */
  2863.   /* 00   */ V(13, 4, 2),    /* 260 */
  2864.   /* 01   */ V(9, 10, 2),
  2865.   /* 10   */ V(10, 9, 2),
  2866.   /* 11   */ V(6, 12, 2),
  2867.  
  2868.   /* 0100 1001 ... */
  2869.   /* 00   */ V(12, 6, 2),    /* 264 */
  2870.   /* 01   */ V(3, 13, 2),
  2871.   /* 10   */ V(13, 3, 2),
  2872.   /* 11   */ V(2, 13, 2),
  2873.  
  2874.   /* 0100 1010 ... */
  2875.   /* 00   */ V(13, 2, 2),    /* 268 */
  2876.   /* 01   */ V(1, 13, 2),
  2877.   /* 10   */ V(7, 11, 2),
  2878.   /* 11   */ V(11, 7, 2),
  2879.  
  2880.   /* 0100 1011 ... */
  2881.   /* 00   */ V(13, 1, 2),    /* 272 */
  2882.   /* 01   */ V(5, 12, 2),
  2883.   /* 10   */ V(12, 5, 2),
  2884.   /* 11   */ V(8, 10, 2),
  2885.  
  2886.   /* 0100 1100 ... */
  2887.   /* 00   */ V(10, 8, 2),    /* 276 */
  2888.   /* 01   */ V(9, 9, 2),
  2889.   /* 10   */ V(4, 12, 2),
  2890.   /* 11   */ V(12, 4, 2),
  2891.  
  2892.   /* 0100 1101 ... */
  2893.   /* 000  */ V(6, 11, 2),    /* 280 */
  2894.   /* 001  */ V(6, 11, 2),
  2895.   /* 010  */ V(11, 6, 2),
  2896.   /* 011  */ V(11, 6, 2),
  2897.   /* 100  */ V(13, 0, 3),
  2898.   /* 101  */ V(0, 12, 3),
  2899.   /* 110  */ V(3, 12, 2),
  2900.   /* 111  */ V(3, 12, 2),
  2901.  
  2902.   /* 0100 1110 ... */
  2903.   /* 00   */ V(12, 3, 2),    /* 288 */
  2904.   /* 01   */ V(7, 10, 2),
  2905.   /* 10   */ V(10, 7, 2),
  2906.   /* 11   */ V(2, 12, 2),
  2907.  
  2908.   /* 0100 1111 ... */
  2909.   /* 00   */ V(12, 2, 2),    /* 292 */
  2910.   /* 01   */ V(5, 11, 2),
  2911.   /* 10   */ V(11, 5, 2),
  2912.   /* 11   */ V(1, 12, 2),
  2913.  
  2914.   /* 0101 0000 ... */
  2915.   /* 00   */ V(8, 9, 2),    /* 296 */
  2916.   /* 01   */ V(9, 8, 2),
  2917.   /* 10   */ V(12, 1, 2),
  2918.   /* 11   */ V(4, 11, 2),
  2919.  
  2920.   /* 0101 0001 ... */
  2921.   /* 000  */ V(12, 0, 3),    /* 300 */
  2922.   /* 001  */ V(0, 11, 3),
  2923.   /* 010  */ V(3, 11, 2),
  2924.   /* 011  */ V(3, 11, 2),
  2925.   /* 100  */ V(11, 0, 3),
  2926.   /* 101  */ V(0, 10, 3),
  2927.   /* 110  */ V(1, 10, 2),
  2928.   /* 111  */ V(1, 10, 2),
  2929.  
  2930.   /* 0101 0010 ... */
  2931.   /* 00   */ V(11, 4, 1),    /* 308 */
  2932.   /* 01   */ V(11, 4, 1),
  2933.   /* 10   */ V(6, 10, 2),
  2934.   /* 11   */ V(10, 6, 2),
  2935.  
  2936.   /* 0101 0011 ... */
  2937.   /* 000  */ V(7, 9, 2),    /* 312 */
  2938.   /* 001  */ V(7, 9, 2),
  2939.   /* 010  */ V(9, 7, 2),
  2940.   /* 011  */ V(9, 7, 2),
  2941.   /* 100  */ V(10, 0, 3),
  2942.   /* 101  */ V(0, 9, 3),
  2943.   /* 110  */ V(9, 0, 2),
  2944.   /* 111  */ V(9, 0, 2),
  2945.  
  2946.   /* 0101 0100 ... */
  2947.   /* 0    */ V(11, 3, 1),    /* 320 */
  2948.   /* 1    */ V(8, 8, 1),
  2949.  
  2950.   /* 0101 0101 ... */
  2951.   /* 00   */ V(2, 11, 2),    /* 322 */
  2952.   /* 01   */ V(5, 10, 2),
  2953.   /* 10   */ V(11, 2, 1),
  2954.   /* 11   */ V(11, 2, 1),
  2955.  
  2956.   /* 0101 0110 ... */
  2957.   /* 00   */ V(10, 5, 2),    /* 326 */
  2958.   /* 01   */ V(1, 11, 2),
  2959.   /* 10   */ V(11, 1, 2),
  2960.   /* 11   */ V(6, 9, 2),
  2961.  
  2962.   /* 0101 0111 ... */
  2963.   /* 0    */ V(9, 6, 1),    /* 330 */
  2964.   /* 1    */ V(10, 4, 1),
  2965.  
  2966.   /* 0101 1000 ... */
  2967.   /* 00   */ V(4, 10, 2),    /* 332 */
  2968.   /* 01   */ V(7, 8, 2),
  2969.   /* 10   */ V(8, 7, 1),
  2970.   /* 11   */ V(8, 7, 1),
  2971.  
  2972.   /* 0101 1001 ... */
  2973.   /* 0    */ V(3, 10, 1),    /* 336 */
  2974.   /* 1    */ V(10, 3, 1),
  2975.  
  2976.   /* 0101 1010 ... */
  2977.   /* 0    */ V(5, 9, 1),    /* 338 */
  2978.   /* 1    */ V(9, 5, 1),
  2979.  
  2980.   /* 0101 1011 ... */
  2981.   /* 0    */ V(2, 10, 1),    /* 340 */
  2982.   /* 1    */ V(10, 2, 1),
  2983.  
  2984.   /* 0101 1100 ... */
  2985.   /* 0    */ V(10, 1, 1),    /* 342 */
  2986.   /* 1    */ V(6, 8, 1),
  2987.  
  2988.   /* 0101 1101 ... */
  2989.   /* 0    */ V(8, 6, 1),    /* 344 */
  2990.   /* 1    */ V(7, 7, 1),
  2991.  
  2992.   /* 0101 1110 ... */
  2993.   /* 0    */ V(4, 9, 1),    /* 346 */
  2994.   /* 1    */ V(9, 4, 1),
  2995.  
  2996.   /* 0101 1111 ... */
  2997.   /* 0    */ V(3, 9, 1),    /* 348 */
  2998.   /* 1    */ V(9, 3, 1),
  2999.  
  3000.   /* 0110 0000 ... */
  3001.   /* 0    */ V(5, 8, 1),    /* 350 */
  3002.   /* 1    */ V(8, 5, 1),
  3003.  
  3004.   /* 0110 0001 ... */
  3005.   /* 0    */ V(2, 9, 1),    /* 352 */
  3006.   /* 1    */ V(6, 7, 1),
  3007.  
  3008.   /* 0110 0010 ... */
  3009.   /* 0    */ V(7, 6, 1),    /* 354 */
  3010.   /* 1    */ V(9, 2, 1),
  3011.  
  3012.   /* 0110 0011 ... */
  3013.   /* 0    */ V(1, 9, 1),    /* 356 */
  3014.   /* 1    */ V(9, 1, 1),
  3015.  
  3016.   /* 0110 0100 ... */
  3017.   /* 0    */ V(4, 8, 1),    /* 358 */
  3018.   /* 1    */ V(8, 4, 1),
  3019.  
  3020.   /* 0110 0101 ... */
  3021.   /* 0    */ V(5, 7, 1),    /* 360 */
  3022.   /* 1    */ V(7, 5, 1),
  3023.  
  3024.   /* 0110 0110 ... */
  3025.   /* 0    */ V(3, 8, 1),    /* 362 */
  3026.   /* 1    */ V(8, 3, 1),
  3027.  
  3028.   /* 0110 0111 ... */
  3029.   /* 0    */ V(6, 6, 1),    /* 364 */
  3030.   /* 1    */ V(2, 8, 1),
  3031.  
  3032.   /* 0110 1000 ... */
  3033.   /* 0    */ V(8, 2, 1),    /* 366 */
  3034.   /* 1    */ V(1, 8, 1),
  3035.  
  3036.   /* 0110 1001 ... */
  3037.   /* 0    */ V(4, 7, 1),    /* 368 */
  3038.   /* 1    */ V(7, 4, 1),
  3039.  
  3040.   /* 0110 1010 ... */
  3041.   /* 00   */ V(8, 1, 1),    /* 370 */
  3042.   /* 01   */ V(8, 1, 1),
  3043.   /* 10   */ V(0, 8, 2),
  3044.   /* 11   */ V(8, 0, 2),
  3045.  
  3046.   /* 0110 1011 ... */
  3047.   /* 0    */ V(5, 6, 1),    /* 374 */
  3048.   /* 1    */ V(6, 5, 1),
  3049.  
  3050.   /* 0110 1100 ... */
  3051.   /* 00   */ V(1, 7, 1),    /* 376 */
  3052.   /* 01   */ V(1, 7, 1),
  3053.   /* 10   */ V(0, 7, 2),
  3054.   /* 11   */ V(7, 0, 2),
  3055.  
  3056.   /* 0110 1110 ... */
  3057.   /* 0    */ V(3, 7, 1),    /* 380  */
  3058.   /* 1    */ V(2, 7, 1),
  3059.  
  3060.   /* 0111 1100 ... */
  3061.   /* 0    */ V(0, 6, 1),    /* 382 */
  3062.   /* 1    */ V(6, 0, 1),
  3063.  
  3064.   /* 1000 0011 ... */
  3065.   /* 0    */ V(0, 5, 1),    /* 384 */
  3066.   /* 1    */ V(5, 0, 1)
  3067. };
  3068.  
  3069. # undef V
  3070. # undef PTR
  3071.  
  3072. /* external tables */
  3073.  
  3074. union huffquad const *const mad_huff_quad_table[2] = { hufftabA, hufftabB };
  3075.  
  3076. struct hufftable const mad_huff_pair_table[32] = {
  3077.   /*  0 */ { hufftab0,   0, 0 },
  3078.   /*  1 */ { hufftab1,   0, 3 },
  3079.   /*  2 */ { hufftab2,   0, 3 },
  3080.   /*  3 */ { hufftab3,   0, 3 },
  3081.   /*  4 */ { 0 /* not used */ },
  3082.   /*  5 */ { hufftab5,   0, 3 },
  3083.   /*  6 */ { hufftab6,   0, 4 },
  3084.   /*  7 */ { hufftab7,   0, 4 },
  3085.   /*  8 */ { hufftab8,   0, 4 },
  3086.   /*  9 */ { hufftab9,   0, 4 },
  3087.   /* 10 */ { hufftab10,  0, 4 },
  3088.   /* 11 */ { hufftab11,  0, 4 },
  3089.   /* 12 */ { hufftab12,  0, 4 },
  3090.   /* 13 */ { hufftab13,  0, 4 },
  3091.   /* 14 */ { 0 /* not used */ },
  3092.   /* 15 */ { hufftab15,  0, 4 },
  3093.   /* 16 */ { hufftab16,  1, 4 },
  3094.   /* 17 */ { hufftab16,  2, 4 },
  3095.   /* 18 */ { hufftab16,  3, 4 },
  3096.   /* 19 */ { hufftab16,  4, 4 },
  3097.   /* 20 */ { hufftab16,  6, 4 },
  3098.   /* 21 */ { hufftab16,  8, 4 },
  3099.   /* 22 */ { hufftab16, 10, 4 },
  3100.   /* 23 */ { hufftab16, 13, 4 },
  3101.   /* 24 */ { hufftab24,  4, 4 },
  3102.   /* 25 */ { hufftab24,  5, 4 },
  3103.   /* 26 */ { hufftab24,  6, 4 },
  3104.   /* 27 */ { hufftab24,  7, 4 },
  3105.   /* 28 */ { hufftab24,  8, 4 },
  3106.   /* 29 */ { hufftab24,  9, 4 },
  3107.   /* 30 */ { hufftab24, 11, 4 },
  3108.   /* 31 */ { hufftab24, 13, 4 }
  3109. };
  3110.